U / min, die eine Datei bereitstellt

11

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?

David Nehme
quelle

Antworten:

10

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"
Kagenut
quelle
5

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.jar
Sie können das "-i" in den Optionen weglassen, wenn Sie nicht alle Informationen zur Drehzahl anzeigen möchten.

Salparadise
quelle
2

In yum-basierten Repositories können Sie so etwas ausprobieren yum provides */filename

Trey
quelle
1

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.

Christian
quelle
1

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").

Tulio Silva
quelle
-3

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

Rory
quelle