어떤 패키지가 파일을 소유하고 있는지 어떻게 알 수 있습니까?


답변:


44

이 작업을 수행하는 데비안에는 여러 가지 유틸리티가 있습니다. 이 페이지 에서 설명을 확인 하십시오 . 나는 그 두 가지를 언급합니다 apt-filedlocate.

apt-file내부 캐시를 검색하므로 검색하려는 모든 패키지를 설치할 수 없습니다. 아래에 더 자세한 안내가 있습니다.

dlocatedpkg -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

빙고! 패키지입니다.


이 답변의 첫 번째 링크 ( debianhelp.co.uk/findfile.htm )는 현재 기능이 없어 보입니다.
rogpeppe

123
user@host:~$ dpkg-query -S /bin/bash 
bash: /bin/bash

여기서 bash는 패키지 이름입니다.


4
이 답변은 허용되는 것보다 훨씬 낫습니다!
Bex

옳은. "허용 된 답변"에 녹색 확인 표시가 표시되는 것은 불행한 일입니다.이 표시는 "올바른 답변"도 표시합니다. 이 경우 허용 된 답변이 누락되고 dpkg-query -S옵션 패키지를 설치하는 잘못된 경로를 알려줍니다.
Scott Prive

42

다른 대안 :

$ dpkg -S /bin/bash
bash: /bin/bash

우분투에서 적어도 두 dpkg패키지 모두 패키지 에있는 것처럼 보이 므로 특정 패키지에 실질적인 이점이 없습니다 ...


14

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/ncupdate-alternatives호출에 의해 생성 되기 때문 입니다 .

패키지에서 다른 버전을 /bin/nc제공 하기 때문에 이와 같이 작동 netcat-traditional합니다.

그런 생성 된 파일을 찾는 일반적인 방법은 없다고 생각합니다. 다른 심볼릭 링크의 경우 다음과 같은 링크를 따라갈 수 있습니다 readlink -f.

dpkg -S "$(readlink -f /bin/nc)"

2

데비안에 익숙하지 않아서 이것을 시도했을 때 당황했습니다.

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:~$ 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.