यह अलेक्सा रोशे के उत्कृष्ट उत्तर के लिए एक विस्तार है । मैंने उस उत्तर को संपादित करने की कोशिश की, लेकिन यह अस्वीकार हो गया (हालांकि एलेक्सेक्स द्वारा नहीं)
मैं नीचे ट्रैक करने की कोशिश कर रहा था जो 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
पर जाने की आवश्यकता के बिना इंस्टॉल करने की आवश्यकता है