Wie liste ich den Inhalt eines Pakets mit Yum auf?
-
01-07-2019 - |
Frage
Ich weiß, wie man RPM verwendet, um den Inhalt eines Pakets aufzulisten (rpm -qpil package.rpm
). Dies erfordert jedoch, dass der Speicherort der .rpm -Datei im Dateisystem. Eine elegantere Lösung wäre, den Paketmanager zu verwenden, was in meinem Fall yum ist. Wie kann Yum verwendet werden, um dies zu erreichen?
Lösung
Es gibt ein Paket namens namens yum-utils
das baut auf yum auf und enthält ein Tool namens namens repoquery
Das kann das tun.
$ repoquery --help | grep -E "list\ files"
-l, --list list files in this package/group
Kombiniert zu einem Beispiel:
$ 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
Auf mindestens einem RH -System mit RPM V4.8.0, YUM V3.2.29 und REPOCKEY V0.0.11, repoquery -l rpm
druckt nichts.
Wenn Sie dieses Problem haben, versuchen Sie das Hinzufügen des Hinzufügens --installed
Flagge: repoquery --installed -l rpm
.
DNF
Aktualisieren:
Benutzen dnf
Anstatt von yum-utils
, Verwenden Sie den folgenden Befehl:
$ 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
Andere Tipps
rpm -ql [packageName]
Beispiel
# 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
Sie müssen nicht yum-utils installiert oder den Speicherort der RPM-Datei kennen.
$ yum install -y yum-utils
$ repoquery -l packagename
Ich glaube nicht Der Inhalt dieses Pakets wie SO:
rpm -qlp /path/to/fileToList.rpm
Wenn Sie die Paketdatei (.rpm) nicht haben, aber das Paket installiert ist, versuchen Sie Folgendes:
rpm -ql packageName
Hier gibt es mehrere gute Antworten. Lassen Sie mich also eine schreckliche geben:
: 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 hat keinen eigenen Pakettyp. Yum arbeitet und hilft bei der Verwaltung von Drehzahlen. Sie können also YUM verwenden, um die verfügbaren RPMs aufzulisten und dann den Befehl rpm -QLP auszuführen, um den Inhalt dieses Pakets anzuzeigen.
zur Zeit reopquery
ist in integriert in dnf
und yum
, also tippen:
dnf repoquery -l <pkg-name>
Listet Paketinhalte von einem Remote -Repository auf (auch für die Pakete, die noch nicht installiert sind)
was bedeutet, eine separate Installation zu installieren dnf-utils
oder yum-utils
Für die Funktionalität ist nicht mehr ein Paket erforderlich, da es jetzt nativ unterstützt wird.
Für die Auflistung Eingerichtet oder lokal (*.rpm
Dateien) Inhalt der Pakete gibt es rpm -ql
Ich denke nicht, dass es mit möglich ist mit yum
Org dnf
(nicht repoquery
Unterbefehl)
Bitte korrigieren Sie mich, wenn ich falsch liege