मुझे कैसे पता चलेगा कि डेबियन पैकेज किस फ़ाइल से आया है?
मुझे कैसे पता चलेगा कि डेबियन पैकेज किस फ़ाइल से आया है?
जवाबों:
डेबियन में कई उपयोग हैं जो इस कार्य को करते हैं; विवरण के लिए इस पृष्ठ की जाँच करें । मैं उनमें से दो का उल्लेख करूंगा, apt-fileऔर dlocate।
apt-fileइसके आंतरिक कैश को खोजता है, इस प्रकार आपको उन सभी पैकेजों को स्थापित नहीं करने देता है जिन्हें आप खोजना चाहते हैं। नीचे आपको अधिक विस्तृत मार्गदर्शिका मिलेगी।
dlocatedpkg -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:~$