214 votes

Comment savoir quel paquet rpm fournit le fichier que je recherche ?

A titre d'exemple, je recherche un mod_files.sh qui devrait être fourni avec le fichier php-devel l'emballage. J'ai deviné que yum installerait le mod_files.sh avec le fichier php-devel x86_64 5.1.6-23.2.el5_3 mais le fichier ne semble pas être installé sur mon système de fichiers.

Comment savoir quel paquet installe un fichier spécifique ? Je cherche où je n'ai pas nécessairement déjà téléchargé localement le paquet qui peut inclure le fichier que je cherche.

J'utilise CentOS 5.

7 votes

Superuser.com___ ?

0 votes

@Grzegorz Bon point, j'ai mis un vote pour déplacer.

1 votes

Voici une meilleure réponse : unix.stackexchange.com/a/4706/39281

273voto

rjh Points 17192

Il s'agit d'une ancienne question, mais les réponses actuelles sont incorrectes :)

Utilisation yum whatprovides avec le chemin d'accès absolu au fichier souhaité (qui peut être remplacé par des caractères génériques). Par exemple :

yum whatprovides '*bin/grep'

Retours

grep-2.5.1-55.el5.x86_64 : The GNU versions of grep pattern matching utilities.
Repo        : base
Matched from:
Filename    : /bin/grep

Vous pouvez préférer le rendement et la vitesse du repoquery disponible dans l'outil yum-utils l'emballage.

sudo yum install yum-utils
repoquery --whatprovides '*bin/grep'
grep-0:2.5.1-55.el5.x86_64
grep-0:2.5.1-55.el5.x86_64

repoquery peut effectuer d'autres requêtes telles que lister le contenu des paquets, les dépendances, les dépendances inversées, etc.

202voto

dj_segfault Points 6407

Pour savoir quel paquet possède (ou fournit) un fichier déjà installé :

rpm -qf myfilename

4 votes

Cette commande semble être plus efficace que yum whatprovides - il n'est pas nécessaire de récupérer les mises à jour à partir de dépôts éventuellement lents.

1 votes

Cette version fonctionne également sur les distributions non basées sur redhat qui utilisent encore des rpm comme openSUSE.

5 votes

Il me semble que rpm -qf <filename> est le mieux adapté pour déterminer quel paquet fournit une application installée (puisqu'il peut être différent de ce qui se trouve dans le cache du dépôt yum actuel), et yum whatprovides <filename> est le mieux adapté pour déterminer quel paquet fournit une application qui n'a pas encore été installée. Chacun a son propre objectif.

4voto

Arash Points 23

Trouver le paquetage lorsque vous êtes connecté à internet (dépôt) est facile mais lorsque vous n'avez accès qu'aux paquets RPM à l'intérieur des DVD Redhat ou Centos (cela m'arrive fréquemment lorsque je dois récupérer un serveur et que j'ai besoin d'une application) je recommande d'utiliser les commandes ci-dessous qui sont complètement indépendantes de l'internet et des dépôts. (supposons que vous ayez beaucoup de paquets désinstallés dans un DVD). Disons que vous avez monté le dossier Package dans ~/cent_os_dvd et que vous recherchez un package qui fournit "semanage" :

for file in `find ~/cent_os_dvd/ -iname '*.rpm'`;  do rpm -qlp $file |grep '.*bin/semanage';  if [ $? -eq 0 ]; then echo "is in";echo $file  ; fi;  done

4voto

nos Points 102226

Vous vous rendez à http://www.rpmfind.net et rechercher le fichier.

Vous obtiendrez des résultats pour un grand nombre de distros et de versions différentes, mais il est fort probable que Fedora et/ou CentOS apparaîtront également et que vous connaîtrez le nom du paquet à installer avec yum.

0 votes

Ce site est hors ligne !

1 votes

Le site web ne semble pas rechercher des fichiers, mais seulement des noms de paquets avec le terme de recherche.

1 votes

@jww La recherche de fichiers fonctionne bien pour moi en tout cas. Comme le dit la documentation, vous pouvez rechercher des exécutables par leur nom de chemin simple ou n'importe quel fichier avec le nom de chemin absolu.

-1voto

Jess Points 8425

S'il manque quelque chose d'important, je le chercherai sur Google pour trouver le régime. Sinon, pour un shell script ou quelque chose de similaire, j'installerai simplement le fichier manuellement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X