À titre d'exemple, je recherche un mod_files.sh
fichier qui viendrait vraisemblablement avec le php-devel
paquet. J'ai deviné que yum
cela installerait le mod_files.sh
fichier avec le php-devel x86_64 5.1.6-23.2.el5_3
package, mais le fichier ne semble pas être installé sur mon système de fichiers.
Comment savoir quel package installe un fichier spécifique? Je cherche où je n'ai pas nécessairement déjà téléchargé localement le package qui peut inclure le fichier que je recherche.
J'utilise CentOS 5.
rpm
, vous devez l'utiliseryum
.Réponses:
C'est une vieille question, mais les réponses actuelles sont incorrectes :)
Utilisez yum whatprovides , avec le chemin absolu du fichier que vous souhaitez (qui peut être un caractère générique). Par exemple:
Retour
Vous pouvez préférer la sortie et la vitesse de l'
repoquery
outil, disponibles dans leyum-utils
package.repoquery
peut faire d'autres requêtes telles que lister le contenu du package, les dépendances, les dépendances inverses, etc.la source
Pour connaître le package possédant (ou fournissant) un fichier déjà installé:
la source
rpm -qf <filename>
c'est le mieux adapté pour déterminer quel package fournit une application installée (car il peut être différent de ce qui se trouve dans le cache du référentiel yum actuel), etyum whatprovides <filename>
est le mieux adapté pour déterminer quel package fournit un encore à installer application. Chacun a son propre but.yum whatprovides ...
nécessite uniquement root si l'application est un package racine (c'est-à-dire qu'il réside dans/sbin
). Cependant,rpm -qf ...
nécessite également root pour lire les rpms/sbin
. Par conséquent, je propose que les exigences de racine soient fonctionnellement équivalentes pour les deux méthodes.La réponse la plus populaire est incomplète:
Étant donné que cette recherche ne sera généralement effectuée que pour les fichiers des packages installés, yum whatprovides est rendu extrêmement rapide en désactivant tous les dépôts externes (le dépôt implicite "installé" ne peut pas être désactivé).
la source
--disablerepo=*
Vous allez sur http://www.rpmfind.net et recherchez le fichier.
Vous obtiendrez des résultats pour de nombreuses distributions et versions différentes, mais il est fort probable que Fedora et / ou CentOS apparaîtront également et vous connaîtrez le nom du package à installer avec yum
la source
Eh bien, trouver le package lorsque vous êtes connecté à Internet (référentiel) est facile, mais lorsque vous n'avez accès qu'aux packages RPM dans Redhat ou Centos DVD (cela m'arrive fréquemment lorsque je dois récupérer un serveur et j'ai besoin d'une application), je recommande en utilisant les commandes ci-dessous qui sont complètement indépendantes d'Internet et des référentiels. (supposément, vous avez beaucoup de packages désinstallés sur un DVD). Supposons que vous ayez monté le dossier Package dans ~ / cent_os_dvd et que vous cherchiez un package fournissant "semanage", vous pouvez exécuter:
la source
En utilisant uniquement l'utilitaire rpm, cela devrait fonctionner dans tout système d'exploitation doté de rpm:
Réf. https://www.thegeekdiary.com/how-to-find-which-rpm-package-provides-a-specific-file-or-library-in-rhel-centos/
la source
Vous pouvez le faire de la même manière ici mais avec votre package. Dans mon cas, c'était
lsb_release
Courir:
yum whatprovides lsb_release
Réponse:
Exécutez pour installer:
yum install redhat-lsb-core
Le nom du package DEVRAIT être sans numéro et sans type de système afin que yum packager puisse choisir ce qui lui convient le mieux.
la source