मुझे कैसे पता चलेगा कि डेबियन पैकेज किस फ़ाइल से आया है?
मुझे कैसे पता चलेगा कि डेबियन पैकेज किस फ़ाइल से आया है?
जवाबों:
डेबियन में कई उपयोग हैं जो इस कार्य को करते हैं; विवरण के लिए इस पृष्ठ की जाँच करें । मैं उनमें से दो का उल्लेख करूंगा, apt-file
और dlocate
।
apt-file
इसके आंतरिक कैश को खोजता है, इस प्रकार आपको उन सभी पैकेजों को स्थापित नहीं करने देता है जिन्हें आप खोजना चाहते हैं। नीचे आपको अधिक विस्तृत मार्गदर्शिका मिलेगी।
dlocate
dpkg -L
(पैकेज सामग्री को सूचीबद्ध करने वाली कमांड) का एक तेज विकल्प है , और इसलिए, यह केवल स्थापित पैकेजों की खोज करता है। द्वारा खोज की जाती है dlocate -S file.name
।
इसके अलावा आप package.debian.org सर्वर ( संकुल अनुभाग की सामग्री खोजें ) का उपयोग करके ऑनलाइन पैकेज खोज सकते हैं ।
apt-file
पहले अपडेट करना अच्छा है:
sudo apt-get update
देखें क्या apt-file
है:
apt-cache show apt-file
इसे स्थापित करो:
sudo apt-get install apt-file
रिपॉजिटरी से डेटा पढ़ें (यह बिना काम करता है sudo
लेकिन उपयोगकर्ता का कैश तब बनाता है; sudo
कैश के साथ सिस्टम चौड़ा है):
sudo apt-file update
खोज करें। इस उदाहरण में हम जानना चाहते हैं कि कौन सा पैकेज xrandr
निष्पादन योग्य है:
apt-file search xrandr
यह कई पैकेजों को सूचीबद्ध करता है unxrandr
, lxrandr.mo
या source_lxrandr.py
। हमारे मामले में बहुत उपयोगी नहीं है। अधिक चतुर खोज:
apt-file search -x /xrandr$
( $
रेखा के अंत को दर्शाता है)। उदाहरण आउटपुट:
bash-completion: /usr/share/bash-completion/completions/xrandr
x11-xserver-utils: /usr/bin/xrandr
पहला परिणाम निष्पादन योग्य नहीं लगता है, दूसरा करता है। हम आगे की जांच कर सकते हैं। चलाएँ:
apt-cache show x11-xserver-utils
बिंगो! यह पैकेज है।
एक अन्य विकल्प:
$ dpkg -S /bin/bash
bash: /bin/bash
कम से कम मेरे उबंटू पर, दोनों dpkg
पैकेज में लगते हैं , इसलिए किसी भी विशिष्ट के लिए कोई वास्तविक लाभ नहीं ...
स्थापना से उत्पन्न फ़ाइलें नहीं dpkg -S
मिलेंगी, जैसा कि नीचे उल्लेख किया गया है: https://askubuntu.com/a/667227/52975
उदाहरण के लिए, /bin/nc
पैकेज को स्थापित करते समय दिखाई देता है netcat-openbsd
।
पर:
dpkg -S /bin/nc
हमें मिलता है dpkg-query: no path found matching pattern /bin/nc
।
ऐसा इसलिए होता है क्योंकि इंस्टॉलेशन के बाद चलने वाली पोस्टइन स्क्रिप्ट में कॉल /bin/nc
द्वारा जनरेट किया जाता है।update-alternatives
यह इस तरह से काम करता है क्योंकि पैकेज /bin/nc
द्वारा एक और संस्करण प्रदान किया जाता netcat-traditional
है।
मुझे नहीं लगता कि ऐसी जनरेट की गई फ़ाइलों को खोजने का कोई सामान्य तरीका है। वैकल्पिक सिमिलिंक के विशिष्ट मामले में, हम केवल इसके साथ लिंक का अनुसरण कर सकते हैं readlink -f
:
dpkg -S "$(readlink -f /bin/nc)"
डेबियन से परिचित नहीं होने के कारण, जब मैंने यह कोशिश की तो मैं चकित रह गया:
kearnsp@xubuntuvb:~$ dpkg -S /usr/bin/vncviewer
dpkg-query: no path found matching pattern /usr/bin/vncviewer
kearnsp@xubuntuvb:~$
थोड़ा सा जाँच और मुझे पैकेज मिला:
kearnsp@xubuntuvb:~$ ls -l /usr/bin/vncviewer
lrwxrwxrwx 1 root root 27 May 28 15:49 /usr/bin/vncviewer -> /etc/alternatives/vncviewer
kearnsp@xubuntuvb:~$ ls -l /etc/alternatives/vncviewer
lrwxrwxrwx 1 root root 20 May 28 15:49 /etc/alternatives/vncviewer -> /usr/bin/xvnc4viewer
kearnsp@xubuntuvb:~$ dpkg -S /usr/bin/xvnc4viewer
xvnc4viewer: /usr/bin/xvnc4viewer
kearnsp@xubuntuvb:~$