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?

War es hilfreich?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top