Pregunta

Con suerte, versión corta de la pregunta: si estoy en una máquina que tiene un paquete en particular instalado, ¿hay un comando yum que me diga cuál de sus repositorios configurados proporciona ese paquete? (O, alternativamente, qué repositorio proporcionaría un paquete aún por instalar).

Antecedentes en caso de que se necesite algún contexto: tenemos un laberinto de repositorios yum de los que sacamos. Tengo una máquina que tiene un paquete rpm en particular instalado, y otra máquina con un laberinto de repositorios aparentemente insuficiente configurado, por lo que no puedo instalar el paquete que quiero en esa máquina. Necesito agregar los repositorios mínimos necesarios a la nueva máquina. No puedo simplemente disparar los repositorios de una máquina a otra. Y solo salir y agarrar las rpm no es una opción porque necesito que esto sea reproducible.

¿Fue útil?

Solución

yum list packagename

Eso mostrará desde qué repositorio está el paquete en la tercera columna de la salida.

Para paquetes ya instalados, eso no funcionará, ya que la tercera columna muestra solo "instalado". En ese caso puedes hacer p. " rpm -qi packagename " ;, típicamente las etiquetas Vendor, Packager y Build Host darán una indicación de a qué repositorio pertenece el paquete. También es bastante común que se agregue algún símbolo de repositorio al número de versión del paquete.

Otros consejos

repoquery -i {packagename} 

Esto le dará el nombre real del repositorio frente al inútil '' instalado '' ese ñam regresa. el repositorio es proporcionado por yum-utils.

Puede usar yum -v search que le mostrará los paquetes junto con el repositorio en el que está presente. Si también agrega --showduplicates , verá todas las versiones de ese paquete.

Crédito a: http://www.spinics.net/linux/fedora /yum/msg11975.html

Para un solo paquete, puede encontrar esto con

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

Reemplace $ PACKAGE con el nombre del paquete que le interesa.

Puede encontrar todos los paquetes que provienen de un repositorio específico con

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

Reemplace $ REPO con la identificación del repositorio que le interesa; puede ver los identificadores de todos sus repositorios habilitados con yum repolist .

Aquí hay algunas formas de descubrir el repositorio para un paquete instalado dado:

rpm -qi {packagename}

o

repoquery -i {packagename}

Referencias:

yum reinstall [package_name]

Luego, cuando se le solicite que confirme, puede elegir N para no cambiar su sistema:

Ejemplo de salida en 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]:
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top