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?
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"
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.jarvous pouvez omettre le "-i" des options si vous ne voulez pas voir toutes les informations sur le RPM.
Dans les référentiels basés sur yum, vous pouvez essayer quelque chose comme yum provides */filename
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.
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").
J'ai peur de ne pas savoir comment le faire avec RPMS, mais avec Debian et Ubuntu, vous pouvez utiliser le programme apt-file