
Wie lautet der Befehl, um aufzulisten, welche RPMs eine bestimmte Datei bereitstellen könnten: die RPMs, die bereits installierte Dateien bereitstellen, oder die RPMs, die nicht installierte Dateien bereitstellen könnten?
Antwort1
Für bereits installierte Dateien/Pakete:
[jb@smokey ~]$ rpm -qf /etc/sudoers sudo-1.6.9p13-8.fc9.x86_64
Für noch nicht installierte Dateien und Pakete:
[jb@smokey ~]$ yum was bietet "/etc/sudoers" sudo-1.6.9p13-8.fc9.x86_64: Ermöglicht eingeschränkten Root-Zugriff für angegebene Benutzer Repo: Updates-neuer Schlüssel Passend dazu von: Dateiname: /etc/sudoers sudo-1.6.9p13-4.fc9.x86_64: Ermöglicht eingeschränkten Root-Zugriff für angegebene Benutzer Repo: Fedora Passend dazu von: Dateiname: /etc/sudoers sudo-1.6.9p13-8.fc9.x86_64: Ermöglicht eingeschränkten Root-Zugriff für angegebene Benutzer Repo: installiert Passend dazu von: Andere: Bietet Übereinstimmung: /etc/sudoers
Beachten Sie, dass es sich bei „yum whatprovides“ um eine Musterübereinstimmung handelt. Wenn Sie also nicht sicher sind, wo in der Verzeichnisstruktur die gesuchte Datei zu finden ist, setzen Sie sie einfach in Anführungszeichen und Sternchen:
yum was bietet "*foo*"
Wenn Sie sicher sind, dass es sich bei dem gesuchten Binärcode um eine Binärdatei handelt, können Sie Folgendes tun:
yum whatprovides "*bin/foo"
Antwort2
Ich weiß nichts über Dateien, die noch nicht installiert sind, aber für eine bereits installierte Datei können Sie rpm -qif verwenden:
rpm -qif /bin/ls Name: coreutils. Umzüge: (nicht umzugsfähig). Version: 5.97. Anbieter: Red Hat, Inc. Version: 23.el5 Erstellungsdatum: Montag, 13. Juli 2009, 04:21:27 Uhr MDT Installationsdatum: Freitag, 11. September 2009, 04:46:01 Uhr MDT Build-Host: hs20-bc1-7.build.redhat.com Gruppe: Systemumgebung/Basisquelle RPM: coreutils-5.97-23.el5.src.rpm Größe: 9053874 Lizenz: GPLv2+ Signatur: DSA/SHA1, Dienstag, 28. Juli 2009, 03:42:40 Uhr MDT, Schlüssel-ID 5326810137017186 Paketierer: Red Hat, Inc. URL: Zusammenfassung: Die GNU-Kernprogramme: eine Reihe von Tools, die häufig in Shell-Skripten verwendet werden Beschreibung : Dies sind die GNU-Kernprogramme. Dieses Paket ist die Kombination aus die alten GNU Fileutils-, Sh-Utils- und Textutils-Pakete.Wenn Sie das RPM heruntergeladen haben, können Sie eine Abfrage durchführen, um zu sehen, was installiert wird:
rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm Warnung: ./Server/jzlib-1.0.7-4jpp.1.i386.rpm: Header V3 DSA-Signatur: NOKEY, Schlüssel-ID 37017186 Name: jzlib. Umzüge: (nicht umzugsfähig). Version: 1.0.7. Anbieter: Red Hat, Inc. Version: 4jpp.1 Erstellungsdatum: Dienstag, 8. August 2006, 12:10:03 Uhr MDT Installationsdatum: (nicht installiert) Build-Host: hs20-bc1-6.build.redhat.com Gruppe: Entwicklung/Bibliotheken/Java Quelle RPM: jzlib-1.0.7-4jpp.1.src.rpm Größe: 280436 Lizenz: BSD-Stil Signatur: DSA/SHA1, Do 18 Jan 2007 08:49:50 AM MST, Schlüssel-ID 5326810137017186 Paketierer: Red Hat, Inc. URL: Zusammenfassung: JZlib-Neuimplementierung von zlib in reinem Java Beschreibung : Die zlib ist als freie, universelle, rechtlich unbelastete -- das heißt, nicht durch Patente abgedeckt -- verlustfreie Datenkompression Bibliothek zur Verwendung auf praktisch jeder Computerhardware und jedem Betriebssystem. Die zlib wurde von Jean-loup Gailly (Komprimierung) und Mark Adler geschrieben (Dekompression). /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.db /usr/lib/gcj/jzlib/jzlib-1.0.7.jar.so /usr/share/doc/jzlib-1.0.7 /usr/share/doc/jzlib-1.0.7/LICENSE.txt /usr/share/java/jzlib-1.0.7.jar /usr/share/java/jzlib.jarSie können das „-i“ in den Optionen weglassen, wenn Sie nicht alle Informationen zum RPM sehen möchten.
Antwort3
In Yum-basierten Repositories könnten Sie etwas wie yum provides */filename
Antwort4
Wenn Sie yum nicht verwenden möchten (oder können) (z. B. auf einem Offline-Rechner), können Sie in nicht installierten RPMs suchen, indem Sie
# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*
Dies kann einige Zeit dauern, also haben Sie Geduld, wenn Sie in einem großen Repository, wie z. B. einer Installations-DVD, zwischen *.rpm suchen. Im Gegensatz zu „-qpl“ listet „-qp --filesbypkg“ jedoch sowohl die Datei als auch das RPM auf, zu dem sie gehört, z. B.:
# rpm -qpl p*.rpm|grep libpq.so.4
/usr/lib/libpq.so.4
/usr/lib64/libpq.so.4
# rpm -qp --filesbypkg p*.rpm|grep libpq.so.4
postgresql-libs /usr/lib/libpq.so.4
postgresql-libs /usr/lib64/libpq.so.4
in diesem Fall ist das scheinbare Duplikat auf das Vorhandensein von i386- und x86_64-Paketen zurückzuführen (erkennbar an der Zeichenfolge „lib64“).