utiliza sistema sirve sincronizar repositorios repositorio qué que pudo para paquetes los hat gestor funcionan derivado como comando caché linux yum package-managers

linux - sistema - ¿Puede yum decirme cuál de mis repositorios proporciona un paquete particular?



yum linux (6)

Esperemos que la versión corta de la pregunta: si estoy en una máquina que tiene un paquete particular instalado, ¿hay un comando yum que me diga cuál de sus repositorios configurados proporcionó 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 de yum de los que extraemos Tengo una máquina que tiene un paquete rpm particular instalado, y otra máquina con un laberinto aparentemente insuficiente de repositorios configurados, 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 la otra. Y salir y agarrar las rpm no es una opción porque necesito que esto sea reproducible.



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; Puedes ver los ID de todos tus repositorios habilitados con yum repolist .



repoquery -i {packagename}

Esto le dará el nombre de repositorio real frente a la "instalación" inútil que devuelve yum. la repoquería es proporcionada por yum-utils.


yum list packagename

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

Para los paquetes ya instalados, eso no funcionará, ya que la tercera columna muestra solo "instalado". En ese caso, puede hacer, por ejemplo, "rpm -qi nombre del paquete", por lo general, las etiquetas Proveedor, Empaquetador y Generar host darán una indicación de a qué depósito pertenece el paquete. También es bastante común que algunos símbolos de recompra se agreguen al número de versión del paquete.


yum reinstall [package_name]

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

Salida de muestra 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]: