tr / min qui fournit un fichier

11

Quelle est la commande pour lister ce que rpms pourrait fournir un fichier particulier: le rpm qui fournit des fichiers déjà installés ou rpms qui pourrait fournir des fichiers qui ne sont pas installés?

David Nehme
la source

Réponses:

10

Pour les fichiers / packages déjà installés:

[jb @ smokey ~] $ rpm -qf / etc / sudoers
sudo-1.6.9p13-8.fc9.x86_64

Pour les fichiers et packages non encore installés:

[jb @ smokey ~] $ yum whatprovides "/ etc / sudoers"
sudo-1.6.9p13-8.fc9.x86_64: autorise un accès root restreint pour les utilisateurs spécifiés
Repo: mises à jour-newkey
Correspond à:
Nom de fichier: / etc / sudoers  

sudo-1.6.9p13-4.fc9.x86_64: autorise un accès root restreint pour les utilisateurs spécifiés
Repo: fedora
Correspond à:
Nom de fichier: / etc / sudoers

sudo-1.6.9p13-8.fc9.x86_64: autorise un accès root restreint pour les utilisateurs spécifiés
Repo: installé
Correspond à:
Autre: Fournit une correspondance: / etc / sudoers

Notez que "yum whatprovides" est une correspondance de modèle, donc si vous n'êtes pas sûr de l'emplacement du fichier que vous recherchez dans la structure du répertoire, entourez-le simplement de guillemets et d'astérisques:

yum whatprovides "* foo *"

De même, si vous êtes sûr que ce que vous recherchez est un binaire, vous pouvez le faire:

yum whatprovides "* bin / foo"
cagenut
la source
5

Je ne connais pas les fichiers qui ne sont pas déjà installés mais pour un fichier déjà installé, vous pouvez utiliser rpm -qif:

rpm -qif / bin / ls
Nom: coreutils Déplacements: (non délocalisable)
Version: 5.97 Fournisseur: Red Hat, Inc.
Sortie: 23.el5 Date de construction: lun 13 juil 2009 04:21:27 AM MDT
Date d'installation: Fri 11 Sep 2009 04:46:01 AM MDT Build Host: hs20-bc1-7.build.redhat.com
Groupe: Environnement système / Source RPM de base: coreutils-5.97-23.el5.src.rpm
Taille: 9053874 Licence: GPLv2 +
Signature: DSA / SHA1, mar 28 juil 2009 03:42:40 AM MDT, ID clé 5326810137017186
Emballeur: Red Hat, Inc. 
URL:
Résumé: Les utilitaires principaux GNU: un ensemble d'outils couramment utilisés dans les scripts shell
La description :
Ce sont les utilitaires principaux de GNU. Ce package est la combinaison de
les anciens paquets GNU fileutils, sh-utils et textutils.
Si vous avez téléchargé le RPM, vous pouvez demander ce qui va être installé:
rpm -qilp ./Server/jzlib-1.0.7-4jpp.1.i386.rpm
avertissement: ./Server/jzlib-1.0.7-4jpp.1.i386.rpm: signature DSA de l'en-tête V3: NOKEY, ID de clé 37017186
Nom: jzlib Réinstallation: (non délocalisable)
Version: 1.0.7 Fournisseur: Red Hat, Inc.
Sortie: 4jpp.1 Date de construction: mar 08 août 2006 12:10:03 PM MDT
Date d'installation: (non installé) Hôte de build: hs20-bc1-6.build.redhat.com
Groupe: Développement / Bibliothèques / Java Source RPM: jzlib-1.0.7-4jpp.1.src.rpm
Taille: 280436 Licence: style BSD
Signature: DSA / SHA1, jeu 18 janv 2007 08:49:50 MST, ID clé 5326810137017186
Emballeur: Red Hat, Inc. 
URL: 
Résumé: JZlib réimplémentation de zlib en Java pur
La description :
Le zlib est conçu pour être un outil gratuit, polyvalent et juridiquement libre
- c'est-à-dire, non couvert par aucun brevet - compression de données sans perte
bibliothèque pour une utilisation sur pratiquement n'importe quel matériel informatique et système d'exploitation.
Le zlib a été écrit par Jean-loup Gailly (compression) et Mark Adler
(décompression).
/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
vous pouvez omettre le "-i" des options si vous ne voulez pas voir toutes les informations sur le RPM.

salparadise
la source
2

Dans les référentiels basés sur yum, vous pouvez essayer quelque chose comme yum provides */filename

Trey
la source
1

afaik, ce n'est pas possible avec du rpm pur. rpm ne fournit cela que pour les packages installés avec option --whatprovides.

lorsque vous pouvez utiliser yum, essayez yum provides <filename>de rechercher dans le référentiel.

Christian
la source
1

Si vous ne voulez pas (ou ne pouvez pas) utiliser yum (par exemple sur une machine hors ligne), vous pouvez rechercher dans les RPM non installés en faisant

# rpm -qp --filesbypkg *rpms-to-search-in* | grep *file-to-search-for*

Cela peut prendre un certain temps, alors soyez patient lorsque vous recherchez parmi * .rpm sur un grand référentiel, comme un DVD d'installation, par exemple. Mais, contrairement à "-qpl", "-qp --filesbypkg" listera à la fois le fichier et le RPM auquel il appartient, par exemple:

# 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

dans ce cas, le double apparent est dû à la présence des packages i386 et x86_64 (mis en évidence par la chaîne "lib64").

Tulio Silva
la source
-3

J'ai peur de ne pas savoir comment le faire avec RPMS, mais avec Debian et Ubuntu, vous pouvez utiliser le programme apt-file

Rory
la source