Debian 시스템(및 파생 제품):
$ dpkg --search /bin/ls
coreutils: /bin/ls
즉, 해당 파일은 /bin/ls
이라는 파일에 속해 있습니다 coreutils
.
하지만 이는 패키지가 설치된 경우에만 작동합니다. 그렇지 않다면 어떨까요?
답변1
적절한 파일
apt-file
바이너리를 제공하는 패키지를 검색하는 기능을 제공합니다(예:더반또는우분투), 기본적으로 설치되지 않고 저장소에 설치됩니다.
apt-file search <path-to-file>
검색하기 전에 한 번 업데이트해야 할 수도 있습니다...
apt-file update
예를 들어 제거된 바이너리를 검색해 보겠습니다 mysqldump
.
$ apt-file search /usr/bin/mysqldump
mysql-client-5.1: /usr/bin/mysqldump
mysql-client-5.1: /usr/bin/mysqldumpslow
mysql-cluster-client-5.1: /usr/bin/mysqldump
mysql-cluster-client-5.1: /usr/bin/mysqldumpslow
(제거된) 패키지의 내용을 나열하는 것도 가능합니다:
$ apt-file list mysql-client-5.1
mysql-client-5.1: /usr/bin/innochecksum
mysql-client-5.1: /usr/bin/innotop
mysql-client-5.1: /usr/bin/myisam_ftdump
mysql-client-5.1: /usr/bin/mysql_client_test
...
음
yum
dnf
최신 Fedora/RedHat 기반 Linux 배포판으로 대체 되었습니다 . 아래를 참조하세요.
yum
설치되거나 제거된 바이너리를 검색하려면 명령 whatprovides
(또는 )을 수락합니다.provides
yum whatprovides <path-to-file>
다시 말하지만 설치되지 않았습니다 mysqldump
.
$ yum whatprovides /usr/bin/mysqldump
mysql-5.1.51-2.fc14.i686 : MySQL client programs and shared libraries
Repo : fedora
Matched from:
Filename : /usr/bin/mysqldump
mysql-5.1.51-1.fc14.i686 : MySQL client programs and shared libraries
Repo : fedora
Matched from:
Filename : /usr/bin/mysqldump
dnf
dnf
repoquery
유사하게 사용할 수 있는 하위 명령이 있습니다 yum whatprovides
.
dnf repoquery --whatprovides /path/to/file
예를 들어:
$ dnf repoquery --whatprovides '*/mysqldump'
mariadb-3:10.5.22-1.el9_2.alma.1.x86_64
mysql-0:8.0.36-1.el9_3.x86_64
칩
zypper
search
옵션과 함께 사용하면 명령은 파일 목록을 검사할 수 있습니다 -f
.
zypper se -f /bin/mksh
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
--+------+-------------------+--------
| mksh | MirBSD Korn Shell | package
네트워크 핀웹 기반 솔루션을 제공하는 경우도 있습니다.스크립트명령줄의 경우.
패키지 파일
시스템 기반 시스템 pkgtools
에 적합합니다 . pacman
위의 다른 기능과 유사한 검색 기능을 제공합니다.
$ pkgfile -si /usr/bin/mysqldump
Name : mysql-clients
Version : 5.1.54-1
Url : http://www.mysql.com/
License : GPL
Depends : libmysqlclient
...
답변2
이를 위한 표준 도구는 다음과 같습니다.적절한 파일. 실행 apt-file update
하여 인덱스 파일을 다운로드합니다. 출력은 다음과 같습니다.
Downloading complete file ftp://ftp.is.co.za/debian/dists/squeeze/Contents-i386.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16.6M 100 16.6M 0 0 33191 0 0:08:47 0:08:47 --:--:-- 38951
그런 다음 apt-file search search_term
.
답변3
머신에 액세스할 수 없거나 이전 답변에 제공된 명령을 사용할 수 없는 경우 다음을 사용할 수도 있습니다.웹 기반 데비안 패키지 검색 엔진(두 번째 형태, "패키지 내용 검색").
답변4
apt-file은 많은 결과를 생성할 수 있습니다. Perl 정규식을 사용하면 작업을 거의 수행할 수 있습니다. 파일이 $PATH 어딘가에 설치되어 있는지 확인하기만 하면 됩니다.
apt-file find --regexp "/$COMMAND$" | grep -E "($(tr : '|' <<< "$PATH"))/$COMMAND$""