Đây là một phần mở rộng cho câu trả lời tuyệt vời của Alexx Roche . Tôi đã cố thực hiện một chỉnh sửa cho câu trả lời đó, nhưng nó đã bị từ chối (mặc dù không phải bởi Alexx)
Tôi đã cố gắng theo dõi những gì được cài đặt whichtrên hệ thống của tôi. Sau một công việc nhỏ tôi đã tạo ra/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}"
Mặc dù đối với hầu hết các THING đã được cài đặt, bạn chỉ có thể sử dụng:
apt-file search $(realpath $(which THING)) | grep 'THING$'
Đối với những điều chưa được cài đặt, bạn có thể sử dụng:
apt-file search THING | grep '/THING$'
Các apt-whatprovideskịch bản làm việc cho các tập tin được và không phải trên hệ thống của bạn. Ví dụ, hệ thống của tôi thiếu dignhưng đã có pingkết quả như vậy:
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
Lưu ý rằng đó Searching forlà một đường dẫn đầy đủ cho ping(đã cài đặt) và chỉ tên nhị phân cho digkhông được cài đặt. Điều này giúp tôi khám phá ra rằng tôi cần cài đặt dnsutilsmà không cần phải tìm kiếm https://packages.ubfox.com/#search_contents