Question

J'espère que la version courte de la question: Si je suis sur une machine sur laquelle un paquet particulier est installé, existe-t-il une commande yum qui me dira lequel de ses référentiels configurés fournit ce paquet? (Ou encore, quel référentiel fournirait un paquet encore à installer).

Contexte au cas où un contexte serait nécessaire: nous avons un labyrinthe de référentiels yum. J'ai une machine sur laquelle un paquetage rpm particulier est installé et une autre machine avec un labyrinthe apparemment insuffisant de référentiels configurés. Je ne peux donc pas installer le paquet que je veux sur cette machine. Je dois ajouter les référentiels minimaux nécessaires à la nouvelle machine. Je ne peux pas fusiller les dépôts d'une machine à l'autre. Et simplement sortir et saisir le nombre de tours par minute n'est pas une option, car j’ai besoin que cela soit reproductible.

Était-ce utile?

La solution

yum list packagename

Cela montrera de quel référentiel le paquet se trouve dans la troisième colonne de la sortie.

Pour les packages déjà installés, cela ne fonctionnera pas, comme le montre la troisième colonne, simplement "installé". Dans ce cas, vous pouvez par exemple faire "rpm -qi packagename", généralement, les balises Vendor, Packager et Build Host donneront une indication du référentiel auquel appartient le package. En outre, il est assez courant d'ajouter un symbole de référentiel au numéro de version du package.

Autres conseils

repoquery -i {packagename} 

Ceci vous donnera le nom du référentiel réel par rapport au peu utile "& installé; installé " que miam revient. la repoquerie est fournie par miam-utils.

Vous pouvez utiliser yum -v search pour afficher les packages avec le référentiel dans lequel il est présent. Si vous ajoutez également - showduplicates , toutes les versions de ce paquet.

Merci de: http://www.spinics.net/linux/fedora /yum/msg11975.html

Pour un seul package, vous pouvez le trouver avec

PACKAGE=ruby-enterprise
repoquery --qf "%{repoid}" $PACKAGE

Remplacez $ PACKAGE par le nom du package qui vous tient à cœur.

Vous pouvez trouver tous les packages provenant d'un référentiel spécifique avec

REPO=ruby-enterprise-opt
repoquery --repoid=$REPO -a --qf "%{name}" | sort > repo_packages
rpm -qa --qf "%{name}\n" | sort > installed_packages
comm -1 -2 repo_packages installed_packages

Remplacez $ REPO par l'id du référentiel qui vous tient à cœur. vous pouvez voir les identifiants de tous vos référentiels activés avec yum repolist .

Voici quelques moyens de découvrir le référentiel d'un package installé donné:

rpm -qi {packagename}

ou

repoquery -i {packagename}

Références:

yum reinstall [package_name]

Puis, lorsque vous êtes invité à confirmer, vous pouvez choisir N ??pour ne pas modifier votre système:

Exemple de sortie sur un centos:

Resolving Dependencies
--> Running transaction check
---> Package mc.x86_64 1:4.6.1a-35.el5 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================================
 Package                      Arch                             Version                                   Repository                      Size
==============================================================================================================================================
Reinstalling:
 mc                           x86_64                           1:4.6.1a-35.el5                           base                           2.1 M

Transaction Summary
==============================================================================================================================================
Remove        0 Package(s)
Reinstall     1 Package(s)
Downgrade     0 Package(s)

Total download size: 2.1 M
Is this ok [y/N]:
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top