Wie lautet der Befehl, um aufzulisten, welche RPMs eine bestimmte Datei bereitstellen können: die RPM, die bereits installierte Dateien bereitstellt, oder die RPMs, die nicht installierte Dateien bereitstellen können?
Für bereits installierte Dateien / Pakete:
[jb @ rauchig ~] $ rpm -qf / etc / sudoers sudo-1.6.9p13-8.fc9.x86_64
Für noch nicht installierte Dateien und Pakete:
[jb @ smiley ~] $ yum whatprovides "/ etc / sudoers" sudo-1.6.9p13-8.fc9.x86_64: Ermöglicht bestimmten Benutzern eingeschränkten Root-Zugriff Repo: Updates-Newkey Übereinstimmend mit: Dateiname: / etc / sudoers sudo-1.6.9p13-4.fc9.x86_64: Ermöglicht bestimmten Benutzern eingeschränkten Root-Zugriff Repo: Fedora Übereinstimmend mit: Dateiname: / etc / sudoers sudo-1.6.9p13-8.fc9.x86_64: Ermöglicht bestimmten Benutzern eingeschränkten Root-Zugriff Repo: installiert Übereinstimmend mit: Sonstiges: Bietet Übereinstimmung: / etc / sudoers
Beachten Sie, dass "yum whatprovides" eine Musterübereinstimmung ist. Wenn Sie also nicht sicher sind, wo sich die gesuchte Datei in der Verzeichnisstruktur befindet, umgeben Sie sie einfach mit Anführungszeichen und Sternchen:
yum whatprovides "* foo *"
Wenn Sie sicher sind, dass Sie nach einer Binärdatei suchen, können Sie Folgendes tun:
yum whatprovides "* bin / foo"
Ich weiß nichts über Dateien, die noch nicht installiert sind, aber für eine Datei, die bereits installiert ist, können Sie rpm -qif verwenden:
U / min -qif / bin / ls Name: coreutils Umzüge: (nicht umsetzbar) Version: 5.97 Anbieter: Red Hat, Inc. Veröffentlichung: 23.el5 Erstellungsdatum: Montag, 13. Juli 2009, 04:21:27 Uhr MDT Installationsdatum: Fr 11 Sep 2009 04:46:01 AM MDT Build Host: hs20-bc1-7.build.redhat.com Gruppe: Systemumgebung / Basisquellendrehzahl: coreutils-5.97-23.el5.src.rpm Größe: 9053874 Lizenz: GPLv2 + Unterschrift: DSA / SHA1, Dienstag, 28. Juli 2009, 03:42:40 Uhr MDT, Schlüssel-ID 5326810137017186 Verpacker: Red Hat, Inc. URL: Zusammenfassung: Die GNU-Kerndienstprogramme: Eine Reihe von Tools, die häufig in Shell-Skripten verwendet werden Beschreibung : Dies sind die GNU-Kerndienstprogramme. Dieses Paket ist die Kombination von die alten GNU-Pakete fileutils, sh-utils und textutils.Wenn Sie das RPM heruntergeladen haben, können Sie abfragen, um zu sehen, was installiert werden soll:
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 umsetzbar) Version: 1.0.7 Anbieter: Red Hat, Inc. Release: 4jpp.1 Erstellungsdatum: Di 08 Aug 2006 12:10:03 PM MDT Installationsdatum: (nicht installiert) Build-Host: hs20-bc1-6.build.redhat.com Gruppe: Entwicklung / Bibliotheken / Java Quell-RPM: jzlib-1.0.7-4jpp.1.src.rpm Größe: 280436 Lizenz: BSD-Stil Unterschrift: DSA / SHA1, Do, 18. Januar 2007, 08:49:50 Uhr MST, Schlüssel-ID 5326810137017186 Verpacker: Red Hat, Inc. URL: Zusammenfassung: JZlib-Neuimplementierung von zlib in reinem Java Beschreibung : Die zlib ist als kostenlose, universell einsetzbare, rechtlich unbelastete Zlib konzipiert - das heißt, nicht durch Patente geschützt - verlustfreie Datenkomprimierung 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 zur Drehzahl anzeigen möchten.
In yum-basierten Repositories können Sie so etwas ausprobieren yum provides */filename
afaik, es ist nicht mit reinen U / min möglich. rpm bietet dies nur für installierte Pakete mit Option --whatprovides
.
Wenn Sie yum verwenden können, versuchen Sie yum provides <filename>
, im Repository zu suchen.
Wenn Sie yum nicht verwenden möchten (oder können) (z. B. auf einem Offline-Computer), können Sie in nicht installierten RPMs suchen, indem Sie dies tun
# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*
Dies kann einige Zeit dauern. Seien Sie also geduldig, wenn Sie in einem großen Repository nach * .rpm suchen, z. B. nach einer Installations-DVD. Im Gegensatz zu "-qpl" listet "-qp --filesbypkg" jedoch sowohl die Datei als auch die Drehzahl auf, zu der sie gehört, zum Beispiel:
# 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 offensichtliche Duplikat auf das Vorhandensein von i386- und x86_64-Paketen zurückzuführen (erkennbar an der Zeichenfolge "lib64").
Ich fürchte, ich bin mir nicht sicher, wie ich es mit RPMS machen soll, aber mit Debian und Ubuntu können Sie das Programm verwenden apt-file