이것은 Alexx Roche의 탁월한 답변에 대한 확장 입니다. 그 답변을 편집하려고했지만 거부되었습니다 (Alexx는 아니지만)
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}"
설치된 대부분의 것들에 대해서는 다음을 사용할 수 있습니다.
apt-file search $(realpath $(which THING)) | grep '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
설치되어 있지 않습니다. 이것은 내가 검색 dnsutils
하지 않아도 설치 가 필요 하다는 것을 발견하는 데 도움이되었습니다 https://packages.ubuntu.com/#search_contents