আমি কীভাবে প্যাকেজগুলির একটি তালিকা পেতে পারি যা dpkg ব্যবহার করে "কিছু সরবরাহ করে"?


9

আমি দেখতে পাচ্ছি প্যাকেজগুলির জন্য dpkg এর একটি "সরবরাহ করে" ক্ষেত্র রয়েছে।

$ apt-cache show vim-tiny | grep Provides
Provides: editor
$

আমি কীভাবে জানব যে কোন প্যাকেজগুলি "সম্পাদক" সরবরাহ করে?

উত্তর:


4

আপনি ব্যবহার করে পছন্দসই প্রভাব অর্জন করতে পারেন aptitude(যা এই দিনগুলিতে নিরুৎসাহিত হবে বলে মনে হয়) apt-cache showpkgযার একটি তালিকা অন্তর্ভুক্ত রয়েছে Reverse Provides। একটি ছোট sedস্ক্রিপ্টের মাধ্যমে পাইপ দেওয়া অন্যান্য জিনিস থেকে মুক্তি পাবে:

apt-cache showpkg <package> | sed '/Reverse Provides/,$!d'

একটি সামান্য সুন্দর (তবে টাইপ করতে দীর্ঘতর) উদাহরণ (কেবলমাত্র প্যাকেজের নাম তালিকাভুক্ত করে, সংস্করণ নয় এবং বর্ণমালা অনুসারে বাছাই করে) এর মাধ্যমে অর্জন করা যেতে পারে awk:

apt-cache showpkg httpd | awk '/Pa/, /Reverse P/ {next} {print $1 | "sort"}'

... এবং এটি অনুলিপিগুলি uniqসরানোর জন্য পাইপ করা যেতে পারে (যা একাধিক সংস্করণের প্যাকেজের বিপরীতে সরবরাহের কারণে উপস্থিত হতে পারে)। মনে রাখবেন যে এর ব্যবহারটি uniqপ্রথম সংস্করণে সাহায্য করবে না, uniqকেবলমাত্র নকলগুলি যদি সন্নিহিত লাইনে থাকে এবং sedসংস্করণটি আউটপুটটিকে বাছাই করে না remove

অবশেষে, কেউ সহজেই সহজে ব্যবহারের জন্য একটি ফাংশন সংজ্ঞায়িত করতে পারে:

provides () { apt-cache showpkg $1 | awk '/Pa/, /Reverse P/ {next} {print $1 | "sort"}' | uniq;}

.bashrcএটিকে আটকে রাখুন (উদাহরণস্বরূপ) , যাতে শেলটি হয়ে গেলে এটি লোড হয়ে যায় এবং provides <package>প্যাকেজের বিপরীত সরবরাহগুলি পেতে চালানো সম্ভব হয় ।


sort -uসদৃশগুলি সরিয়ে ফেলবে, সুতরাং কল করার uniqপ্রয়োজন নেই। তবে যাই হোক না কেন, দুর্দান্ত সমাধান, এটি অনেক দ্রুত। aptitudeখুব মিলবে doom-wad-editor, সুতরাং তারা সম্পূর্ণ সমতুল্য নয়।
জানুস ট্রয়লসেন

ওহ, ভাল চিৎকার sort -u। ওটা জানত না। আমি অবাক হই কেন এটি উঠছে না doom-wad-editor...? এটি বিশেষত আকর্ষণীয় যেহেতু apt-cache showpkgএটিকে কোনওভাবে নির্ভর করে না বলে দেখায়।
দারায়েল

আহ। আরও পরিদর্শন করে দেখা যায় যে aptitudeঅনুসন্ধানটি Provides:ক্ষেত্রের সাবস্ট্রিংগুলির সাথে মিলবে (এইভাবে পিকআপ করা হবে deutex), যেখানে apt-cache showpkgপদ্ধতিটি সঠিক প্যাকেজের নাম ব্যবহার করে। সুতরাং উভয়ই সম্ভবত তাদের জায়গা আছে have
দারায়েল

আমি বিশ্বাস করি যে এটি অবশ্যই স্পষ্ট করে দেওয়া উচিত এটি <package>এখানে ভার্চুয়াল প্যাকেজ। লাইক editor,।
এক্স-ইউরি

@ এক্স-ইউরির কোনও ফলাফল হওয়ার জন্য অবশ্যই এটি নিশ্চিত, তবে এটি কেবল কারণ ভার্চুয়াল প্যাকেজ হল এমন একটি নাম যার জন্য Provides:সংগ্রহশালায় কমপক্ষে একটি লাইন বিদ্যমান । তেমনিভাবে ঠিক একইভাবে apt-cache search, যখন কিছুই নেই তখন সঠিক ফলাফল হ'ল আউটপুটের অভাব - যা এই বিকল্পগুলি সরবরাহ করে। একই প্যাকেজের কংক্রিট এবং ভার্চুয়াল সংস্করণ থাকতে পারে এবং আমি মনে করি যে এটি কংক্রিটের সংস্করণটি উপস্থিত রয়েছে তা দেখাতে আমরা এগুলি বাড়িয়ে তুলতে পারি, তবে এটিই যথেষ্ট।
দারেল

7

প্রবণতা এছাড়াও এই কার্যকারিতা প্রদান করে। সুতরাং এর মতো একটি কমান্ড এমন সমস্ত প্যাকেজ প্রদর্শন করবে যা সম্পাদক সরবরাহ করে।

aptitude search '~Peditor'

এমনকি আপনি অন্যান্য বাধাও যোগ করতে পারেন। কেবল ইনস্টল করা সম্পাদকগুলি দেখান।

aptitude search '~i~Peditor'

আমি এটি পছন্দ করি কারণ এতে অন্যান্য সমাধানগুলির তুলনায় অনেক বেশি প্যাকেজ রয়েছে। আমার সমাধানগুলি কেবল লাইনের শুরুতে "i" (ইনস্টলড) তালিকাভুক্ত প্যাকেজগুলি দেখায়। এই সমাধানটি "পি" দিয়ে লাইনগুলিও দেখায় (অর্থাত প্যাকেজের কোনও চিহ্ন সিস্টেমে বিদ্যমান নেই)।
জানুস ট্রোলসেন

6
$ dpkg-query -W -f='Package: ${Package}\nProvides: ${Provides}\n' \
  | grep -B 1 -E "^Provides: .*editor"
Package: nano
Provides: editor
--
Package: vim-gnome
Provides: editor, gvim, vim, vim-perl, vim-python, vim-ruby, vim-tcl
--
Package: vim-tiny
Provides: editor
$

1
-1: এটি কেবল ইনস্টল করা প্যাকেজগুলির অনুসন্ধান করে।
মুনসুইপ

@ মুনস্বীপ সম্মত হন, তবে এটি কিছু ক্ষেত্রে কার্যকর হতে পারে।
user.dz

0

সরাসরি ডাটাবেস পড়া:

#!/usr/bin/env python3
import sys
import shlex

def whichPkgsProvide(filter,l):
    for pkg in l:
            dic = {}
            pairs = [x.split(": ") for x in pkg.split("\n")]
            for j in pairs:
                    try:
                            dic[j[0]] = j[1]
                    except IndexError:
                            pass

            try:
                    if filter in dic["Provides"]:
                            yield dic["Package"]
            except KeyError:
                    pass


if __name__ == "__main__":
    l = sys.stdin.read().split("\n\n")
    print(list(whichPkgsProvide(sys.argv[1],l)))

ব্যবহার:

$ python3 whichPkgsProvide.py editor <  /var/lib/dpkg/available
['vim-gnome', 'nano', 'vim-tiny']
$

-1

আপনার উদাহরণের ভিত্তিতে আমি editorব্যবহার করে সরবরাহ করা প্যাকেজ তালিকা করতে পারেনapropos

hvn@lappy: ~ () $ apropos editor
atobm (1)            - bitmap editor and converter utilities for the X W...
bitmap (1)           - bitmap editor and converter utilities for the X W...
bmtoa (1)            - bitmap editor and converter utilities for the X W...
ed (1)               - text editor
editor (1)           - Vi IMproved, a programmers text editor
editres (1)          - a dynamic resource editor for X Toolkit applications
ex (1)               - Vi IMproved, a programmers text editor
gedit (1)            - text editor for the GNOME Desktop
gnome-text-editor (1) - text editor for the GNOME Desktop
gview (1)            - Vi IMproved, a programmers text editor
gvim (1)             - Vi IMproved, a programmers text editor
i3-sensible-editor (1) - launches $EDITOR with fallbacks
nano (1)             - Nano's ANOther editor, an enhanced free Pico clone
notepad (1)          - Wine text editor
pico (1)             - Nano's ANOther editor, an enhanced free Pico clone
psed (1)             - a stream editor
ptked (1p)           - an editor in Perl/Tk
red (1)              - text editor
regedit (1)          - Wine registry editor
rgview (1)           - Vi IMproved, a programmers text editor
rgvim (1)            - Vi IMproved, a programmers text editor
rnano (1)            - Restricted mode for Nano's ANOther editor, an enh...
rview (1)            - Vi IMproved, a programmers text editor
rvim (1)             - Vi IMproved, a programmers text editor
s2p (1)              - a stream editor
sdlBasic (1)         - sdlBasic program editor
sed (1)              - stream editor for filtering and transforming text
select-editor (1)    - select your default sensible-editor from all inst...
sensible-editor (1)  - sensible editing, paging, and web browsing
software-properties-gtk (1) - Software Sources List editor
Tk::ColorEditor (3pm) - a general purpose Tk widget Color Editor
vi (1)               - Vi IMproved, a programmers text editor
view (1)             - Vi IMproved, a programmers text editor
vim (1)              - Vi IMproved, a programmers text editor
winecfg (1)          - Wine Configuration Editor
xedit (1)            - simple text editor for X
zshzle (1)           - zsh command line editor

1
-1: aproposম্যানুয়াল পৃষ্ঠাগুলি সন্ধান করুন, সুতরাং এটি কেবল ইনস্টল করা কমান্ডগুলির তালিকা করবে ... প্লাস, ওপি প্যাকেজগুলির একটি তালিকা চায় ।
মুনসুইপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.