Después de haber instalado un paquete de yum (con múltiples repositorios configurados), ¿cómo puedo encontrar desde qué repositorio se ha instalado?
Si ejecuto yum info package-name
(o yum list package-name
), solo puedo ver que el paquete está "instalado".
rpm -qa|grep NAME
entonces puedes haceryum list installed|grep NAME
para encontrar de qué repo proviene el rpm .Respuestas:
Con yum-utils instalado, el repositorio proporcionará la información que busca (aquí 'epel' es el repositorio).
fuente
yum info package_name
, no parece consultar los repositorios en el mismo orden que yum.yum info package_name
Al parecer, devuelve más resultados que el repositorio. Esta es la razón por la cual el intercambio de la pila no debe bloquear los votos.repoquery -i $pkg
da un repositorio del que$pkg
está disponible un a, no el repositorio desde el que$pkg
se instaló. Hice ese comandorpm -qi $pkg
y obtuve diferentes números de versión.rpm
resultó en un número de versión anterior al derepoquery
.--use-mirror
). No creo que sea posible obtener siempre la respuesta correcta.¿Qué versión de ñam?
En la versión actual, si el paquete instalado es la misma versión que la más reciente disponible, se muestra el repositorio desde el que se instaló.
Si hay un paquete más nuevo disponible, se mostrará por separado, y la nueva versión mostrará el repositorio desde el que está disponible.
fuente
Llegando tarde, pero (al menos en Fedora 15) se puede usar yumdb para consultas similares:
Y lo que realmente necesitaba para enumerar los paquetes de los repositorios dados:
fuente
Si todo lo demás falla, puede inspeccionar el yumdb manualmente. Se encuentra en
/var/lib/yum/yumdb
y contiene información detallada sobre cada paquete instalado. Te interesará particularmentefrom_repo
. Por ejemplo, para elbind-utils
paquete:Para obtener solo la información que desea:
Las versiones posteriores proporcionarán aún más datos; por ejemplo, en EL 7, el espejo exacto y la URL desde la que se descargó el paquete se almacenan aquí.
fuente
for i in /var/lib/yum/yumdb/b/*bind-utils*/*; do echo $i: `cat $i` | grep -oP 'from_repo:\ \K.*'; done
que en el ejemplo anterior devuelve: ¡updates
mucho más legible!grep
nada aquí, e incluso puede abandonar el ciclo. Un muy simplecat /var/lib/yum/yumdb/b/*bind-utils*/from_repo
es todo lo que necesitas.Le informará al vendedor y al empaquetador.
fuente
Para ver qué se instaló desde repo epel: (Debería funcionar bajo Centos 5.5), tenga en cuenta que si no tiene un repositorio llamado epel, escupirá todo lo que esté instalado.
repoquery --repoid = epel -a | lista de xargs yum instalada
fuente
Si el paquete se instaló recientemente, puede buscar en / var / cache / yum.
Dentro de ese directorio, hay un directorio para cada repositorio, y en ese directorio de paquetes. Entonces, harías algo como:
Sin embargo, la memoria caché debe estar habilitada en su archivo /etc/yum.conf:
Tenga en cuenta que a
yum clean [packages|all]
borrará el directorio de caché.Si el directorio de caché está vacío, hay una forma alternativa. La información que se lee
yum info [package]
proviene de /var/cache/yum/[repofont>/primary.xml.gzPuede consultar el archivo ingresando:
Sin embargo, en máquinas donde
yum info [package]
no se muestra "From repo:", como lo indica 'theotherreceive', es porque no está en el archivo primary.xml, por lo que no habrá forma de recuperar esa información. Por lo tanto, si el paquete está en dos o más archivos primary.xml, tendrá que determinar la prioridad de repositorio en su sistema.fuente
Basado y respondido por Swoogan
en RedHat y CentOS, uno puede hacer
Los resultados deberían ser parecidos a
Donde repository_name es el repositorio donde se puede encontrar su paquete, y probablemente se instaló desde el primero de una lista (ver yum repolist)
fuente
¿Se captura esa información en alguna parte? El paquete no tiene esa información, y a yum no le importa después de encontrar el paquete. Probablemente podría juntarlo averiguando qué repositorios tiene el paquete y luego determinar cuál tiene prioridad.
fuente
No es una gran solución, pero descubrí que la lista yum disponible le mostrará dónde está disponible la versión más actualizada de cada paquete, por ejemplo:
lista de yum disponible | grep gstreamer
bluez-gstreamer.i386 4.30-2.fc10 actualizaciones
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 rpmfusion-free
gstreamer-plugins-bad-devel.x86_64 0.10.9-1.fc10 rpmfusion-free
Entonces, podría hacer una lista de yum disponible en su paquete, luego comparar su versión instalada usando la lista de yum instalada y tener una buena idea de qué repositorio proviene si las versiones coinciden.
fuente
Puede agregar la bandera detallada a "yum info":
El repositorio de instalación estará debajo de la salida "Desde el repositorio".
fuente
Así que sé que esta es una pregunta un tanto antigua, pero aparece en la búsqueda de Google de lo que estaba buscando.
También hay un método para obtener una lista única de repositorios utilizados:
Esto mostrará una lista de los repositorios desde los que se han instalado paquetes.
fuente
El enfoque más simple y directo sin instalar herramientas adicionales, codificar o generar información extraña es simplemente:
La tercera columna proporcionará la ID del repositorio desde el que se instaló el paquete.
Esto se mencionó en un comentario sobre la pregunta original usando grep, pero eso no es necesario. Simplemente puede pasar el nombre del paquete directamente
yum
al filtro.fuente
Ninguno de los comandos anteriores funcionó para mí. Esto es lo que tuve que hacer.
Una buena referencia está aquí.
https://access.redhat.com/sites/default/files/attachments/rh_yum_cheatsheet_1214_jcs_print-1.pdf
fuente
La forma más fácil es esta:
Más consejos y trucos están disponibles aquí: http://wiki.centos.org/TipsAndTricks/YumAndRPM
fuente