답변:
apt-file search filename
또는
apt-file search /path/to/file
설치하려면 다음 apt-file
을 사용하십시오.
sudo apt-get install apt-file
데이터베이스를 사용하려면 먼저 데이터베이스를 업데이트해야합니다.
sudo apt-file update
dpkg -S
아래 설명대로 작동합니다.
(Debian / Ubuntu) 파일이 속한 패키지를 확인하십시오 .
dpkg -S /usr/bin/ls
'dpkg -S'는 제공 한 문자열과 일치하므로 'ls'를 인수로 사용하면 파일 이름의 어느 곳에 나 'ls'가있는 패키지의 모든 파일과 일치합니다. 따라서 일반적으로 절대 경로를 사용하는 것이 좋습니다. 두 번째 예에서 dpkg로 알려진 12,000 개의 파일이 기본 문자열 'ls'와 일치 함을 알 수 있습니다.
apt-file
패키지를 통해 수동으로 설치 한 경우 파일에서 패키지를 찾습니다 dpkg -i
.
dpkg-query: no path found matching pattern /usr/bin/java
,에 파일이 있지만/usr/bin/java
packages.debian.org 는이 작업을 수행하기 위해 항상 사용하는 것입니다. 파일 이름의 일부를 찾을 수 있기 때문에 apt 파일보다 우수합니다. 또한 주요 패키지 목록에 연결되어 있으며 설명, 버그 등이 모두 나열되어 있습니다. 커맨드 라인에서 유용하지는 않지만 여전히 유용합니다.
속도를 위해 URL을 북마크했습니다.
http://packages.debian.org/search?searchon=contents&keywords=%s&mode=filename&suite=unstable&arch=any
Firefox에서 키워드로 "debfind"를 추가 했으므로 (책갈피 관리자에서 "more"를 클릭하면 강조 표시됨) "debfind"를 입력하면 작동합니다. 다른 버전의 배포판에 대해 '스위트'를 불안정에서 안정 또는 테스트로 변경할 수 있습니다.
dlocate를 사용할 수도 있습니다. 매뉴얼 페이지에서;
$ dlocate [ PATTERN ]
List all records where either the package name or the filename matches PATTERN.
dlocate
또한 제가 가장 좋아하는 방법으로 매우 신뢰할 수 있습니다.
dlocate
는 sudo update-dlocatedb
먼저 실행하지 않으면 최근에 설치된 패키지를 찾지 못합니다 . 이 명령은 매일 자동으로 /etc/cron.daily/dlocate에서 실행됩니다
와지 그를 찾았어요
wajig whichpackage /path/to/file
예.
wajig whichpackage /etc/apt/sources.list
Wajig는 편리한 명령 줄 또는 콘솔 도구로, 배우고 싶지 않은 모든 apt-get, dpkg의 장점을 감 쌉니다. .
wajig를 설치하려면 다음을 사용하십시오.
apt-get install wajig
이 'package'명령 자체는 apt 파일에 따라 다릅니다.
당신이 그것을 사용하기 전에 당신은 여전히 데이터베이스를 업데이트해야 할 것입니다 :-wajig update whixh가 apt-get update도 파일 캐시를 업데이트하는지 알지 못하지만 데이터베이스가 업데이트 될 수 있습니다.
sudo wajig update
sudo apt-file update
(그리고 Super Cow, Easter egss?!)
Simmilar는 데비안에 대한 jamuraa의 답변으로, 우분투에 대해서는 http://packages.ubuntu.com/ 을 방문 하십시오 . 파일 경로를 입력 할 수있는 "패키지 내용 검색"검색 상자 를 찾으려면 조금 아래로 스크롤해야 합니다.
http://www.kodkast.com/applications/find-which-package-file-belongs-to를 사용하여 파일을 검색 하십시오.
이것은 다른 rpms / linux 패키지에 포함 된 파일을 검색하는 응용 프로그램으로, 컴퓨터에 rpm이 설치되어 있지 않은 경우에도 매우 유용합니다.
찾을 수없는 명령 패키지는 잠재적 인 명령과 데비안 패키지 이름에 대한 힌트를 제공합니다. bash 쉘에 명령을 입력하고 출력을 보면 작동합니다.
예를 들어 명령 이름을 알고있는 경우 :
zer@ivy:~ 10:45 $ zsh5
The program 'zsh5' is currently not installed. To run 'zsh5' please ask
your administrator to install the package 'zsh'
zsh5: command not found
명령을 알 수 없으면 몇 가지 추측이 적용됩니다.
zer@ivy:~ 09:46 $ zsh
No command 'zsh' found, did you mean:
Command 'lsh' from package 'lsh-client' (main)
Command 'osh' from package 'omake' (main)
Command 'ysh' from package 'libyaml-shell-perl' (main)
Command 'ssh' from package 'openssh-client' (main)
Command 'vsh' from package 'crystalspace' (main)
Command 'dsh' from package 'dsh' (main)
Command 'ash' from package 'ash' (main)
Command 'msh' from package 'nmh' (main)
Command 'zssh' from package 'zssh' (main)
Command 'qsh' from package 'gridengine-client' (main)
Command 'sh' from package 'dash' (main)
Command 'bsh' from package 'bsh' (main)
zsh: command not found
-h
또는 --help
끝에 추가 하면 약간 도움이 될 것입니다. -h
마지막에 추가 하면 이것이 충분히 안전 해지면 권장 할 것이지만 OP가 요구하는 것을 달성하는 좋은 방법은 아닙니다.