Question Comment savoir à partir de quel référentiel yum un paquet a été installé?


Après avoir installé un paquet par yum (avec plusieurs référentiels configurés), comment puis-je trouver à partir de quel référentiel il a été installé?

Si je cours yum info package-name (ou yum list package-name), Je ne peux que voir que le paquet est "installé".


134
2017-09-03 15:15


origine


Bonne question! J'ai installé yum-utils et en ai essayé un, appelé repoquery, mais sans succès. - Sean Staats
voir également serverfault.com/questions/90409/… :) - warren
@warren votre lien n'est pas utile car votre lien est une question sur "quel repo est un rpm stocké dans" mais cette question demande "quel repo est un rpm INSTALLED from". différentes questions. - Trevor Boyd Smith
si vous avez l'habitude de faire rpm -qa|grep NAME Ensuite vous pouvez faire yum list installed|grep NAME pour trouver ce que repo le rpm est de. - Trevor Boyd Smith
@TrevorBoydSmith - Il y a 7 ans, c'était proche. Aujourd'hui c'est encore similaire. Jamais dit que c'était le même. Juste que c'était lié. - warren


Réponses:


Avec yum-utils installé, Repoquery fournira les informations que vous recherchez (ici, "epel" étant le référentiel).

└─[$]> repoquery -i cherokee

Name        : cherokee
Version     : 0.99.49
Release     : 1.el5
Architecture: i386
Size        : 8495964
Packager    : Fedora Project
Group       : Applications/Internet
URL         : http://www.cherokee-project.com/
Repository  : epel
Summary     : Flexible and Fast Webserver
Description :
Cherokee is a very fast, flexible and easy to configure Web Server. It supports
the widespread technologies nowadays: FastCGI, SCGI, PHP, CGI, TLS and SSL
encrypted connections, Virtual hosts, Authentication, on the fly encoding,
Apache compatible log files, and much more.

75
2018-06-21 19:16



la repoquerie ne semble pas fonctionner correctement, j’obtiens alors différentes versions du paquet yum info package_name, il ne semble pas interroger les référentiels dans le même ordre que yum. - Mike Miller
Idem ici sur quelques serveurs. yum info package_name renvoie plus de résultats que la repoquerie apparemment. C'est pourquoi l'échange de pile ne doit pas bloquer les votes. - reflexiv
J'ai trouvé la réponse de Xiong Chiamiov pas correcte. repoquery -i $pkg donne repo à partir de laquelle $pkg est disponible, pas le repo à partir duquel le $pkg etait installé. J'ai fait ce commandement et rpm -qi $pkg et obtenu des numéros de version différents. rpm abouti à un numéro de version antérieur à celui de repoquery.
Il est possible que votre copie locale soit obsolète ou qu'elle ait été installée avec des commandes supplémentaires pour yum (par exemple, --use-mirror). Je ne pense pas qu'il soit possible de toujours avoir la bonne réponse. - Xiong Chiamiov


Quelle version de miam?

Sur la version actuelle, si le package installé est la même version que la plus récente, le référentiel à partir duquel il a été installé est affiché.

$ yum info irssi
Installed Packages
Name       : irssi
Arch       : i586
Version    : 0.8.14
Release    : 1.fc11
Size       : 2.3 M
Repo       : installed
From repo  : updates
Summary    : Modular text mode IRC client with Perl scripting
URL        : http://irssi.org/
License    : GPLv2+
Description: Irssi is a modular IRC client with Perl scripting. Only text-mode
           : frontend is currently supported. The GTK/GNOME frontend is no
           : longer being maintained.

$ yum --version
3.2.23

Si un package plus récent est disponible, il sera affiché séparément, avec la nouvelle version indiquant le référentiel depuis lequel il est disponible.


37
2017-09-03 16:25



J'utilise yum 3.2.19 sur CentOs 5.3 et la ligne "From repo" n'existe pas. - lg.
Oui ... je le testais sur 3.2.21, qui n'a cette information nulle part. Quand je l'ai fait sur ma boîte qui a 3.2.23, cela a fonctionné. - Alex
Il s’agit maintenant de la meilleure solution, mais non applicable pour RHEL / Centos 5.3. J'accepte cette solution, mais je suis prêt à choisir une autre réponse si elle s'appliquera également à RHEL / Centos 5.3. - lg.
C'est un non-aller dans CentOS 5.5 non plus. - Mike Miller
"De représentant" n'est pas disponible même en centos 5.8 - sepehr


Venant trop tard, mais (du moins sur Fedora 15), on peut utiliser yumdb pour des requêtes similaires:

yumdb info 'python*'

Et ce dont j'avais réellement besoin pour lister les paquets de repo (s) donné (s):

yumdb search from_repo 'my-*-repo'

18
2017-10-26 09:01



Cela fonctionne aussi sur Fedora 14 - lg.
fonctionne sur RHEL 6.2 - pixelbeat


Si tout échoue, vous pouvez inspecter la yumdb manuellement. Il est situé dans /var/lib/yum/yumdb et contient des informations détaillées sur chaque paquet installé. Vous serez particulièrement intéressé par from_repo. Par exemple, pour le bind-utils paquet:

# for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i`; done
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_data: 39f7840f93d3d76825a9e8da79cfe0366f7fad68f018a273477aee62cccfa3f4
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/checksum_type: sha256
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/command_line: install bind-utils
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo: updates
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_revision: 1397654451
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/from_repo_timestamp: 1397654759
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/installed_by: 0
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/reason: user
/var/lib/yum/yumdb/b/73ea08770fa666e18c59842bf65fa0f3a0b103d8-bind-utils-9.8.2-0.23.rc1.el6_5.1-x86_64/releasever: 6

Pour obtenir uniquement les informations souhaitées:

# cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
updates

Les versions ultérieures fourniront encore plus de données; Par exemple, dans EL 7, le miroir et l'adresse URL exacts à partir desquels le paquet a été téléchargé sont stockés ici.


8
2018-05-25 04:19



+1 Mais c'est encore mieux de faire quelque chose comme: for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done, qui dans l'exemple ci-dessus renvoie: updates - beaucoup plus lisible! - Greg Dubicki
@GregDubicki Le but de la commande était de montrer plus le contexte de ce qui se passe et comment les choses sont stockées. Il a apparemment échoué à le faire: il n’est pas nécessaire de grep rien ici, et vous pouvez même laisser tomber la boucle. Un très simple cat /var/lib/yum/yumdb/b/*bind-utils*/from_repo c'est tout ce dont vous avez besoin. - Michael Hampton♦


rpm -qi packagename

Vous dira le vendeur et emballeur


6
2018-02-09 14:48





Si le paquet a été installé récemment, vous pouvez regarder dans / var / cache / yum.

Dans ce répertoire, il y a un répertoire pour chaque dépôt et un répertoire de packages. Donc, vous feriez quelque chose comme:

find /var/cache/yum -name [package-name]*

Cependant, le cache doit être activé dans votre fichier /etc/yum.conf:

cachedir=/var/cache/yum
keepcache=1

Notez que yum clean [packages|all] va effacer le répertoire de cache.

Si le répertoire de cache est vide, il existe un autre moyen. Les informations lues par yum info [package] vient de /var/cache/yum/[repo]/primary.xml.gz

Vous pouvez parcourir le fichier en entrant:

gunzip -d -c /var/cache/yum/[repo]/primary.xml.gz | grep '<name>[package]'

Cependant, sur des machines où yum info [package] n'affiche pas "From repo:", comme indiqué par "theotherreceive", c'est parce qu'il ne se trouve pas dans le fichier primary.xml, il n'y aura donc aucun moyen de récupérer ces informations. Par conséquent, si le package se trouve dans plusieurs fichiers primary.xml, vous devrez déterminer la priorité du référentiel sur votre système.


4
2017-09-03 16:36



Cette solution est peut-être une option (je vote), mais je cherche une réponse définitive. - lg.


Pour voir ce qui est installé à partir de repo epel: (devrait fonctionner sous Centos 5.5), notez que si vous n'avez pas de repo nommé epel, tout ce qui est installé sera recraché.

repoquerie --repoid = epel -a | xargs yum list installé


4
2018-04-07 21:20



Cela semble fonctionner tant qu'il n'y a pas de paquet mis à jour dans le référentiel. Vous devez donc exécuter yum update juste avant de l’utiliser. - codewaggle


Basé sur et répondre par Swoogan
Sur RedHat et CentOS, on peut faire

sudo grep -ir PACKAGE_NAME /var/cache/yum/

Les résultats devraient ressembler à quelque chose comme

Binary file /var/cache/yum/REPOSITORY_NAME/primary.xml.gz.sqlite matches

nom_référentiel  est le référentiel où votre paquet peut être trouvé, et il a probablement été installé à partir du premier dans une liste (voir yum repolist)


3
2018-05-30 00:19





Cette information est-elle capturée quelque part? Le paquet n'a pas cette information, et yum ne s'en soucie pas après l'avoir trouvé. Vous pourriez probablement rassembler tous les éléments en déterminant quels dépôts ont le package, puis déterminer celui qui est prioritaire.


1
2017-09-03 16:19



Cette solution est peut-être une option (je vote), mais uniquement pour les packages installés récemment, car je peux modifier le référentiel et sa priorité. - lg.


Pas une bonne solution, mais j’ai trouvé que la liste de yum disponible vous indiquera où se trouve la version la plus récente de chaque paquet, par exemple:

yum list available | grep gstreamer

PackageKit-gstreamer-plugin.x86_64 0.3.16-1.fc10          updates               

bluez-gstreamer.i386 4.30-2.fc10 mises à jour
gstreamer.i386 0.10.21-2.fc10 fedora
gstreamer-devel.i386 0.10.21-2.fc10 fedora
gstreamer-devel.x86_64 0.10.21-2.fc10 fedora
gstreamer-plugins-bad-devel.i386 0.10.9-1.fc10 sans rpmfusion
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 sans rpmfusion

Vous pouvez donc créer une liste de yum disponible sur votre paquet, puis comparer votre version installée à l’aide de yum list installée, et avoir une bonne idée de son dépôt si les versions correspondent.


1
2017-09-03 16:37



Ceci est vrai seulement si le paquet n'est pas encore installé. - lg.
Bien que cela ne réponde pas exactement à la question des OP, cela m'a été très utile car cela fonctionne dans Centoss 5.5 avec juste yum et aucun autre utilitaire, et vous pouvez: 1. Désinstaller le paquet puis interroger pour voir où le référentiel est ensuite réinstallé , ou 2. Requête sur une autre machine sans que le paquet ne soit installé. - lreeder


Vous pouvez ajouter le drapeau détaillé à "miam info":

yum info -v <package_name>

Le référentiel d'installation sera sous la sortie "From repo".


1
2017-08-19 22:42



Cela semble être la seule solution qui ne nécessite pas l'installation de yum-utils. - Mark Edington