답변:
이 작업을 수행하는 데비안에는 여러 가지 유틸리티가 있습니다. 이 페이지 에서 설명을 확인 하십시오 . 나는 그 두 가지를 언급합니다 apt-file
및 dlocate
.
apt-file
내부 캐시를 검색하므로 검색하려는 모든 패키지를 설치할 수 없습니다. 아래에 더 자세한 안내가 있습니다.
dlocate
dpkg -L
(패키지 내용을 나열하는 명령 )에 대한 빠른 대안 이므로 설치된 패키지 만 검색합니다. 에 의해 검색이 수행됩니다 dlocate -S file.name
.
또한 packages.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
빙고! 패키지입니다.
user@host:~$ dpkg-query -S /bin/bash
bash: /bin/bash
여기서 bash는 패키지 이름입니다.
dpkg-query -S
옵션 패키지를 설치하는 잘못된 경로를 알려줍니다.
다른 대안 :
$ dpkg -S /bin/bash
bash: /bin/bash
우분투에서 적어도 두 dpkg
패키지 모두 패키지 에있는 것처럼 보이 므로 특정 패키지에 실질적인 이점이 없습니다 ...
https://askubuntu.com/a/667227/52975에dpkg -S
언급 된대로 설치에서 생성 된 파일 을 찾을 수 없습니다 .
예를 들어 /bin/nc
패키지를 설치할 때 나타납니다 netcat-openbsd
.
그러나
dpkg -S /bin/nc
우리는 얻는다 dpkg-query: no path found matching pattern /bin/nc
.
설치 후 실행 되는 postinst 스크립트/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:~$