डेबियन में सभी सॉफ्टवेयर पैकेज ढूंढना जो एक विशेष विकल्प प्रदान करते हैं


12

डेबियन वितरण में डेबियन अल्टरनेटिव सिस्टम है । विकी से:

डेबियन अल्टरनेटिव सिस्टम कई कार्यक्रमों के लिए एक तरीका बनाता है जो समान या समान कार्यों को पूरा करने के लिए वैकल्पिक कार्यान्वयन के रूप में सूचीबद्ध किया जाता है जो एक साथ स्थापित होते हैं, लेकिन डिफ़ॉल्ट के रूप में नामित एक विशेष कार्यान्वयन के साथ। उदाहरण के लिए कई प्रणालियों में एक ही समय में कई पाठ संपादक स्थापित होते हैं। Vi कार्यक्रम एक संपादक का एक उत्कृष्ट उदाहरण है जिसमें कई कार्यान्वयन हैं जैसे कि एनवीआई, एल्विस, विम, आदि लेकिन कौन से डिफ़ॉल्ट के रूप में नामित किया जाना चाहिए?

सामान्य तौर पर, डेबियन में कई पैकेज होते हैं जो एक विशेष विकल्प प्रदान करते हैं। कोई ऐसे सभी पैकेजों की पूरी सूची कैसे प्राप्त करता है जो डेबियन रिपॉजिटरी में मौजूद हैं? आइए हम एक उदाहरण के रूप में vi विकल्प का उपयोग करें।

नोट: स्थापित पैकेजों की सूची के विरुद्ध ऐसी क्वेरी करना आसान है, लेकिन यह वह नहीं है जो यह प्रश्न पूछता है।

जवाबों:


9

मुझे पता है कि यह थोड़ा देर से है, लेकिन यह पोस्ट वर्तमान में डेबियन में विकल्प खोजने से संबंधित शीर्ष खोज हिट में से एक है।

update-alternativesयहाँ उपयोग करने के साथ समस्या यह है कि यह केवल आपको स्थापित विकल्प दिखाएगा जहाँ तक मैं बता सकता हूँ (इसका मैन पेज काफी विरल है)।

शीर्षक में रखे गए प्रश्न का उत्तर देने के लिए, अर्थात सभी उपलब्ध पैकेजों को खोजना जो एक विकल्प प्रदान करते हैं (स्थापित या नहीं), आप उपयोग कर सकते हैं:

aptitude search '?provides(pattern)'

जिसे संक्षिप्त भी किया जा सकता है:

aptitude search '~Ppattern'

patternआप के लिए देख रहे हैं या वैकल्पिक का हिस्सा है, जहां । के विशिष्ट मामले में vi, यह वास्तव में काम नहीं करता है। आप संकुल का निरीक्षण किया तो nviऔर vimसाथ aptitude showया apt-cache show, आप देखेंगे कि न तो एक सूची "vi" अपने "प्रदान करता है:" में अनुभाग। वास्तव में, nvi का विवरण उस अनुभाग को पूरी तरह से याद नहीं कर रहा है।

हालाँकि, यह अन्य विकल्पों के लिए यथोचित काम करता है, जैसे editor:

$ aptitude search '~Peditor'
p   deutex                         - composition tool for doom-style WAD files
p   edbrowse                       - /bin/ed-alike webbrowser written in C    
p   emacs24                        - GNU Emacs editor (with GTK+ GUI support) 
p   emacs24-lucid                  - GNU Emacs editor (with Lucid GUI support)
p   emacs24-nox                    - GNU Emacs editor (without GUI support)   
p   fte-console                    - Text editor for programmers - console edi
p   fte-terminal                   - Text editor for programmers - version for
p   fte-xwindow                    - Text editor for programmers - X Window Sy
p   jed                            - editor for programmers (textmode version)
p   jove                           - Jonathan's Own Version of Emacs - a compa
p   jupp                           - user friendly full screen text editor    
p   le                             - Text editor with block and binary operati
p   ledit                          - line editor for interactive programs     
p   levee                          - very small vi clone                      
p   mg                             - microscopic GNU Emacs-style editor       
p   nano                           - small, friendly text editor inspired by P
p   nano-tiny                      - small, friendly text editor inspired by P
p   ne                             - easy-to-use and powerful text editor     
p   pluma                          - official text editor of the MATE desktop 
p   rlfe                           - Front-end using readline to "cook" input 
p   rlwrap                         - readline feature command line wrapper    
p   scite                          - Lightweight GTK-based Programming Editor 
p   vigor                          - nvi with the evil paperclip              
p   vile                           - VI Like Emacs - vi work-alike            
p   vim                            - Vi IMproved - enhanced vi editor         
p   vim-athena                     - Vi IMproved - enhanced vi editor - with A
p   vim-gnome                      - Vi IMproved - enhanced vi editor - with G
i   vim-gtk                        - Vi IMproved - enhanced vi editor - with G
p   vim-nox                        - Vi IMproved - enhanced vi editor - with s
i   vim-tiny                       - Vi IMproved - enhanced vi editor - compac
p   xjed                           - editor for programmers (x11 version)     
p   xul-ext-password-editor        - edit password manager entries in Mozilla 
p   xvile                          - VI Like Emacs - vi work-alike (X11) 

भले ही यह सही नहीं है, aptitudeलेकिन अविश्वसनीय रूप से लचीली खोज क्षमताएं हैं जो आपको अक्सर पैकेज की समस्या के आसपास काम करने देंगी जो सही ढंग से सूचीबद्ध नहीं हैं कि वे कौन से विकल्प प्रदान करते हैं- उदाहरण के लिए "~seditors ~dvi\s"खोज पैटर्न के रूप में उपयोग करने से "संपादकों" अनुभाग में सभी पैकेज सूचीबद्ध होंगे विवरण में स्ट्रिंग "vi" है।

एक अन्य विकल्प डेबियन के पैकेज वेबसाइट का उपयोग करना है , जहां समान पैकेज दाईं ओर अनुभाग में सूचीबद्ध हैं।


1
जवाब के लिए धन्यवाद। हालाँकि, क्या है aps ~Peditor? यदि apsउपयुक्तता के लिए शॉर्ट कट का इरादा है, तो ठीक है, लेकिन कृपया इसका उपयोग किसी उत्तर में न करें, यह सभी को भ्रमित कर देगा। इसके अलावा, अगर आपको लगता है कि लापता उपलब्धियां हैं, तो आप संबंधित पैकेज (एस) के खिलाफ बग रिपोर्ट दर्ज कर सकते हैं।
फहीम मीठा

संदर्भ से, मुझे लगता है कि apsइसके लिए खड़ा होना चाहिए aptitude search। लेकिन आपको इसका उपयोग स्पष्ट रूप से करना चाहिए। हालाँकि, मुझे नहीं लगता कि यह एक व्यावहारिक जवाब है, भले ही - शायद यह कुछ परिशोधन के साथ काम करेगा। aptitude search -Pviअप्रासंगिक सामान का भार देता है। मुझे लगता है कि यह पूरे पैकेज विवरण की खोज कर रहा है।
फहीम मीठा

aptitude search ~P(टिल्ड ध्यान दें) खोज केवल में Providesहै, लेकिन viअन्य मेल खाता Providesप्रविष्टियों; आपको एक सटीक मिलान निर्दिष्ट करना होगा aptitude search '~P^vi$'। यह उदाहरण इस दृष्टिकोण के साथ एक मौलिक सीमा को उजागर करता है: जबकि एक viविकल्प है, कोई viवर्चुअल पैकेज नहीं है ...
स्टीफन किट

5

यह निर्भर करता है। कुछ विकल्प हैं, जैसे x-www-browser, एक पैकेज का उपयोग नहीं करते हैं और अनुरक्षक स्क्रिप्ट के माध्यम से अद्यतन-विकल्प में जोड़े जाते हैं:

/var/lib/dpkg/info/iceweasel.postinst:    update-alternatives --install /usr/bin/x-www-browser \
/var/lib/dpkg/info/iceweasel.postinst:    update-alternatives --remove mozilla /usr/bin/iceweasel
/var/lib/dpkg/info/iceweasel.postinst:    update-alternatives --install /usr/bin/gnome-www-browser \
/var/lib/dpkg/info/iceweasel.prerm:    update-alternatives --remove x-www-browser /usr/bin/iceweasel
/var/lib/dpkg/info/iceweasel.prerm:    update-alternatives --remove gnome-www-browser /usr/bin/iceweasel
/var/lib/dpkg/info/chromium.postinst:    update-alternatives --install /usr/bin/x-www-browser \
/var/lib/dpkg/info/chromium.postinst:    update-alternatives --install /usr/bin/gnome-www-browser \
/var/lib/dpkg/info/chromium.prerm:    update-alternatives --remove x-www-browser /usr/bin/chromium
/var/lib/dpkg/info/chromium.prerm:    update-alternatives --remove gnome-www-browser /usr/bin/chromium

ऐसे अन्य भी हैं जो एक ही बाइनरी के किसी भी संस्करण को स्थापित करने के लिए एक एकल रूपक का उपयोग करते हैं (जावा / ओपनजेआरई पैकेज में दिमाग में आता है, भी init)। अन्य लोग एक वर्चुअल पैकेज का उपयोग करते हैं, " प्रोवाइड्स " को भरकर (यह आम तौर पर वैकल्पिक DPKG डेटाबेस के अपडेट के साथ आता है) जिस स्थिति में, उन पैकेजों में से कोई भी एक ही बाइनरी प्रदान करना चाहिए।

तो, एक विशिष्ट फ़ाइल प्रदान करने वाले सभी पैकेजों को कैसे ढूंढें? यदि आप एक पैकेज को जानते हैं जो मैं करता हूं, तो प्रोवाइड्स का उपयोग करूंगा और apt-file search fileबाकी सभी चीजों के लिए।


विम के लिए उदाहरण?
फहीम मीठा

1
@FaheemMitha विम प्रदान करता है editor
ब्रियाम

ऐसा होता है। इसलिए कई अन्य पैकेज करें, जिनमें वेम का कोई लेना देना नहीं है। तो, इस मामले में एक उदाहरण कैसा दिखेगा?
फहीम मीठा

4

वर्चुअल पैकेज और डेबियन अल्टरनेटिव सिस्टम (जहाँ बायनेरिज़ प्ले में आते हैं) संबंधित हैं लेकिन समान नहीं हैं। वर्चुअल पैकेज के लिए, आप यह apt-cacheपता लगाने के लिए उपयोग कर सकते हैं कि कौन से (असली) पैकेज "इसे" प्रदान करते हैं:

$ apt-cache showpkg awk
Package: awk
Versions: 

Reverse Depends: 
  base-files,awk
  base-files,awk
Dependencies: 
Provides: 
Reverse Provides: 
mawk:i386 1.3.3-17ubuntu2
gawk:i386 1:4.0.1+dfsg-2.1ubuntu2
original-awk 2012-12-20-1
mawk 1.3.3-17ubuntu2
gawk 1:4.0.1+dfsg-2.1ubuntu2

प्रदर्शन प्रबंधकों के लिए, वर्चुअल पैकेज है x-display-manager:

$ apt-cache showpkg x-display-manager
Package: x-display-manager
Versions: 

Reverse Depends: 
  utf8-migration-tool,x-display-manager
  razorqt,x-display-manager
  lxde,x-display-manager
  numlockx,x-display-manager
  ltsp-client-core,x-display-manager
Dependencies: 
Provides: 
Reverse Provides: 
gdm 3.10.0.1-0ubuntu3.1
lightdm 1.10.6-0ubuntu1
kdm 4:4.11.11-0ubuntu0.2
xdm 1:1.1.11-1ubuntu1
wdm 1.28-16
slim 1.3.4-2.1
lxdm 0.4.1-0ubuntu6
kdm 4:4.11.8-0ubuntu6
gdm 3.10.0.1-0ubuntu3
lightdm 1.10.0-0ubuntu3

विकल्प प्रणाली update-alternativesको ब्रिएम के उत्तर शो के रूप में अनुरक्षक लिपियों में कॉल द्वारा नियंत्रित किया जाता है , और बाकी पैकेजिंग प्रणाली इनसे अनजान है। Providesक्षेत्र के बाद से एक पैकेज सेवाओं या पुस्तकालयों, की पेशकश की न केवल बाइनरी के माध्यम से करने के मामले में एक और प्रदान कर सकता है, विकल्प की तुलना में अधिक सामान्य भी है।

पैकेज के बिना Providesक्षेत्र के विकल्पों के बारे में जानकारी जोड़ने के लिए (और वैकल्पिक विकल्पों के सभी अंतिम बिंदुओं के लिए वर्चुअल पैकेज बनाते हैं - जैसे vi) और खुद पैकेजों का निरीक्षण किए बिना, वर्तमान में कोई भी सामान्य तरीका नहीं है, जिसके लिए पैकेज एक विकल्प प्रदान कर सकता है।


2

Vi विकल्प खोजने के लिए सख्ती से प्रश्न से संबंधित :

 update-alternatives --list editor

आउटपुट:

/bin/ed
/bin/nano
/usr/bin/mcedit
/usr/bin/vim.basic
/usr/bin/vim.tiny

या:

update-alternatives --config vi

आउटपुट:

There are 2 choices for the alternative vi (providing /usr/bin/vi).



Selection    Path                Priority   Status

------------------------------------------------------------

* 0            /usr/bin/vim.basic   30        auto mode

  1            /usr/bin/vim.basic   30        manual mode

  2            /usr/bin/vim.tiny    10        manual mode

Press enter to keep the current choice[*], or type selection number:

3
सही, लेकिन यह केवल स्थापित पैकेज के लिए काम करता है। सवाल पूछता है कि सभी पैकेजों के लिए यह कैसे करना है । शायद मुझे प्रश्न में अधिक स्पष्ट होना चाहिए था।
फहीम मीठा

1
सही बात। लेकिन मैं आपकी प्रारंभिक पोस्ट अपडेट की जांच करने से पहले यह पोस्ट करता हूं ... वह हिस्सा जहां आप "डेबियन रिपॉजिटरी में मौजूद हैं" जोड़ते हैं
एंडी

खैर, मेरे पास "ऐसे सभी पैकेज" थे, जो मुझे लगा कि स्पष्ट था, लेकिन स्पष्ट रूप से नहीं। उसके लिए माफ़ करना। वैसे भी, unix.sx में आपका स्वागत है। मैं देखता हूं कि आज आप शामिल हो गए हैं।
फहीम मिष्ठा

1

में उबंटू , पैकेज command-not-foundएक डेटाबेस भी कई विकल्प युक्त होता है। स्थापना के बाद, इसे /usr/lib/command-not-found --no-failure-msg --ignore-installed mail(इसके लिए विकल्पों को सूचीबद्ध करने के लिए mail) के साथ क्वेर किया जा सकता है ।
सावधान, जब आप नहीं चाहते कि स्वचालित आदेशों को बैश में गायब कर दिया जाए, तो unset -f command_not_found_handleअपने ~ / .bashrc में लिखें या विश्व स्तर पर परिभाषा को हटा दें /etc/bash.bashrc। (Zsh के लिए भी ऐसा ही करें।)

में डेबियन , इस उपकरण केवल उपयुक्त फ़ाइल का उपयोग करता है, डेटाबेस बनाने के लिए इसलिए कोई विकल्प में जाना जाता है (परीक्षण नहीं)। वहाँ यह वही बताता है apt-file search ...

उबंटू स्रोत: https://launchpad.net/command-not-found


आप जो सुझाव दे रहे हैं, मैं उसका पालन नहीं करता। क्या आप अधिक स्पष्ट हो सकते हैं? विशेष रूप से /usr/lib/command-not-found /usr/bin/mailकुछ प्रकार के व्यंजनों की तरह दिखता है, लेकिन मुझे समझ नहीं आता कि यह क्या करना चाहिए। एक स्पष्टीकरण सहायक होगा।
फहीम मीठा

स्पष्ट करने के लिए कुछ शब्दों को जोड़ा गया, और /usr/bin/कमांड से हटा दिया गया क्योंकि यह काम नहीं करता है।
सिमोहे

खैर, मेरा सवाल डेबियन के बारे में है, उबंटू से नहीं। हालांकि मुझे समझ नहीं आया कि डेबियन और उबंटू यहां अलग क्यों होंगे। और वास्तव में आपके द्वारा सूचीबद्ध कमांड यहां कुछ भी उपयोगी नहीं है। # /usr/lib/command-not-found mail Command 'mail' is available in '/usr/bin/mail' mail: command not found
फहीम मीठा

उत्तर बताता है कि mailपहले से ही स्थापित है। इस चेक को विकल्प के साथ छोड़ा जा सकता है --ignore-installed। लेकिन इसके बाद भी, आपको (डेबियन में) अधिक जानकारी नहीं मिलेगी apt-file search mail
सिमोहे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.