यह अलेक्सा रोशे के उत्कृष्ट उत्तर के लिए एक विस्तार है । मैंने उस उत्तर को संपादित करने की कोशिश की, लेकिन यह अस्वीकार हो गया (हालांकि एलेक्सेक्स द्वारा नहीं)
मैं नीचे ट्रैक करने की कोशिश कर रहा था जो whichमेरे सिस्टम पर स्थापित है। थोड़ा काम करने के बाद मैंने बनाया/usr/local/bin/apt-whatprovides
#!/bin/sh
#apt-whatprovides ver. 201801010101 Copyright alexx, MIT Licence
#rdfa:deps="[realpath,apt-file,grep,which,sh,echo]"
BINARY="$(realpath $(which $@) 2>/dev/null)"
[ -z "$BINARY" ] && BINARY="$@"
echo Searching for $BINARY
PACKAGE="$(apt-file search $BINARY|grep -E ":.*[^-.a-zA-Z0-9]${BINARY}$")"
echo "${PACKAGE}"
यद्यपि आपके द्वारा स्थापित अधिकांश THINGs के लिए आप इसका उपयोग कर सकते हैं:
apt-file search $(realpath $(which THING)) | grep 'THING$'
स्थापित न होने वाले THING के लिए, आप उपयोग कर सकते हैं:
apt-file search THING | grep '/THING$'
apt-whatprovidesस्क्रिप्ट फ़ाइलें कि कर रहे हैं और अपने सिस्टम पर नहीं कर रहे हैं के लिए काम करता है। उदाहरण के लिए, मेरे सिस्टम में कमी थी, digलेकिन pingइसका परिणाम यह था :
pi@raspberrypi:~ $ apt-whatprovides ping
Searching for /bin/ping
inetutils-ping: /bin/ping
iputils-ping: /bin/ping
pi@raspberrypi:~ $ apt-whatprovides dig
Searching for dig
dnsutils: /usr/bin/dig
epic4: /usr/share/epic4/script/dig
epic4-help: /usr/share/epic4/help/8_Scripts/dig
knot-dnsutils: /usr/bin/dig
ध्यान दें कि (स्थापित) के Searching forलिए एक पूर्ण पथ है pingऔर digस्थापित नहीं करने के लिए सिर्फ बाइनरी नाम है। इससे मुझे यह पता लगाने में मदद मिली कि मुझे https://packages.ubuntu.com/#search_contentsdnsutils पर जाने की आवश्यकता के बिना इंस्टॉल करने की आवश्यकता है