[linux] YUM을 사용하여 패키지 내용을 나열하는 방법은 무엇입니까?

rpm을 사용하여 패키지 내용을 나열하는 방법을 알고 있습니다 ( rpm -qpil package.rpm). 그러나 파일 시스템에서 .rpm 파일의 위치를 ​​알아야합니다. 더 우아한 해결책은 패키지 관리자를 사용하는 것입니다. 필자의 경우 YUM입니다. 이것을 달성하기 위해 YUM을 어떻게 사용할 수 있습니까?



답변

yum-utilsYUM을 기반으로 하는 패키지 repoquery가 있으며이를 수행 할 수 있는 도구가 포함되어 있습니다.

$ repoquery --help | grep -E "list\ files"
  -l, --list            list files in this package/group

하나의 예로 결합 :

$ repoquery -l time
/usr/bin/time
/usr/share/doc/time-1.7
/usr/share/doc/time-1.7/COPYING
/usr/share/doc/time-1.7/NEWS
/usr/share/doc/time-1.7/README
/usr/share/info/time.info.gz

rpm v4.8.0, yum v3.2.29 및 repoquery v0.0.11이있는 하나 이상의 RH 시스템에서 repoquery -l rpm아무것도 인쇄하지 않습니다.

이 문제가 발생하면 --installed플래그를 추가하십시오 : repoquery --installed -l rpm.


DNF 최신 정보:

사용하려면 dnf대신 yum-utils다음 명령을 사용합니다 :

$ dnf repoquery -l time
/usr/bin/time
/usr/share/doc/time-1.7
/usr/share/doc/time-1.7/COPYING
/usr/share/doc/time-1.7/NEWS
/usr/share/doc/time-1.7/README
/usr/share/info/time.info.gz


답변

rpm -ql [packageName]

# rpm -ql php-fpm

/etc/php-fpm.conf
/etc/php-fpm.d
/etc/php-fpm.d/www.conf
/etc/sysconfig/php-fpm
...
/run/php-fpm
/usr/lib/systemd/system/php-fpm.service
/usr/sbin/php-fpm
/usr/share/doc/php-fpm-5.6.0
/usr/share/man/man8/php-fpm.8.gz
...
/var/lib/php/sessions
/var/log/php-fpm

yum-utils를 설치하거나 rpm 파일의 위치를 ​​알 필요가 없습니다.


답변

$ yum install -y yum-utils

$ repoquery -l packagename


답변

yum을 사용하여 패키지의 내용을 나열 할 수는 없지만 로컬 시스템에 .rpm 파일이있는 경우 (설치된 모든 패키지의 경우와 같이) rpm 명령을 사용하여 나열 할 수 있습니다 패키지의 내용은 다음과 같습니다.

rpm -qlp /path/to/fileToList.rpm

패키지 파일 (.rpm)이 없지만 패키지가 설치되어있는 경우 다음을 시도하십시오.

rpm -ql packageName


답변

여기에 몇 가지 좋은 답변이 있으므로 끔찍한 답변을 제공하겠습니다.

: you can type in anything below, doesnt have to match anything

yum whatprovides "me with a life"

: result of the above (some liberties taken with spacing):

Loaded plugins: fastestmirror
base | 3.6 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/4): extras/7/x86_64/primary_db | 166 kB 00:00
(2/4): base/7/x86_64/group_gz | 155 kB 00:00
(3/4): updates/7/x86_64/primary_db | 9.1 MB 00:04
(4/4): base/7/x86_64/primary_db | 5.3 MB 00:05
Determining fastest mirrors
 * base: mirrors.xmission.com
 * extras: mirrors.xmission.com
 * updates: mirrors.xmission.com
base/7/x86_64/filelists_db | 6.2 MB 00:02
extras/7/x86_64/filelists_db | 468 kB 00:00
updates/7/x86_64/filelists_db | 5.3 MB 00:01
No matches found

: the key result above is that "primary_db" files were downloaded

: filelists are downloaded EVEN IF you have keepcache=0 in your yum.conf

: note you can limit this to "primary_db.sqlite" if you really want

find /var/cache/yum -name '*.sqlite'

: if you download/install a new repo, run the exact same command again
: to get the databases for the new repo

: if you know sqlite you can stop reading here

: if not heres a sample command to dump the contents

echo 'SELECT packages.name, GROUP_CONCAT(files.name, ", ") AS files FROM files JOIN packages ON (files.pkgKey = packages.pkgKey) GROUP BY packages.name LIMIT 10;' | sqlite3 -line /var/cache/yum/x86_64/7/base/gen/primary_db.sqlite

: remove "LIMIT 10" above for the whole list

: format chosen for proof-of-concept purposes, probably can be improved a lot


답변

Yum에는 자체 패키지 유형이 없습니다. Yum은 RPM을 운영하고 관리합니다. 따라서 yum을 사용하여 사용 가능한 RPM을 나열한 다음 rpm -qlp 명령을 실행하여 해당 패키지의 내용을 볼 수 있습니다.


답변

현재 reopquery에 통합 dnf하고 yum, 입력 그래서 :

dnf repoquery -l <pkg-name>

원격 저장소의 패키지 컨텐츠를 나열합니다 (아직 설치되지 않은 패키지의 경우에도)

이는 이제 기본적으로 지원되므로 기능에 별도 dnf-utils또는 yum-utils패키지를 설치할 필요가 없습니다.


설치된 또는 로컬 ( *.rpm파일) 패키지의 내용 을 나열하기 위해rpm -ql

나는 그것이 yumorg dnf( repoquery하위 명령 아님)로 가능하다고 생각하지 않습니다.

내가 틀렸다면 저를 정정하십시오