¿Cómo puedo indicar a yum que instale una versión específica del paquete X?


226

Si hay dos (o más) versiones de un RPM determinado disponibles en un repositorio de YUM, ¿cómo puedo dar instrucciones yumpara instalar la versión que quiero?

Mirando a través del servicio de compilación de Koji, noto que hay varias versiones.

    ss # 1

Respuestas:


310

Para ver qué versiones particulares están disponibles para usted yum, puede usar el --showduplicatesinterruptor. Te da una lista como "nombre del paquete. Versión de arquitectura":

$ yum --showduplicates list httpd | expand
Loaded plugins: fastestmirror, langpacks, refresh-packagekit
Loading mirror speeds from cached hostfile
 * fedora: mirror.steadfast.net

Available Packages
httpd.x86_64                        2.4.6-6.fc20                         fedora 
httpd.x86_64                        2.4.10-1.fc20                        updates

En cuanto a la instalación de una versión en particular? Puede agregar la información de la versión al nombre del paquete, eliminando el nombre de la arquitectura, así:

$ sudo yum install <package name>-<version info>

Por ejemplo, en este caso, si quisiera instalar la versión anterior, 2.4.6-6, haría lo siguiente:

$ sudo yum install httpd-2.4.6-6

También puede incluir la información de la versión al especificar un paquete. En este caso, dado que estoy tratando con Fedora 20 (F20), la información de la versión sería "fc20", y la información de la arquitectura también.

$ sudo yum install httpd-2.4.6-6.fc20
$ sudo yum install httpd-2.4.6-6.fc20.x86_64

repositorio

Si alguna vez no está seguro de que está construyendo los argumentos correctamente, también puede consultar repoquery.

$ sudo yum install yum-utils  # (to get `repoquery`)
$ repoquery --show-duplicates httpd-2.4*
httpd-0:2.4.6-6.fc20.x86_64
httpd-0:2.4.10-1.fc20.x86_64

descarga e instalación

También puede usar una de las siguientes opciones para descargar un RPM particular de la web y luego usarlo yumpara instalarlo.

$ yum --downloadonly <package>
-or-
$ yumdownloader <package>

Y luego instálelo así:

$ sudo yum localinstall <path to rpm>

¿Qué sucede si quiero descargar todo lo que requiere el paquete X?

$ yumdownloader --resolve <package>

Ejemplo

$ yumdownloader --resolve vim-X11
Loaded plugins: langpacks, presto, refresh-packagekit
Adding en_US to language list
--> Running transaction check
---> Package vim-X11.x86_64 2:7.3.315-1.fc14 set to be reinstalled
--> Finished Dependency Resolution
vim-X11-7.3.315-1.fc14.x86_64.rpm                              | 1.1 MB     00:01

Observe que está haciendo una verificación de dependencia y luego descargando las piezas faltantes. Vea mi respuesta que lo cubre con más detalles aquí: ¿Cómo descargar un archivo del repositorio e instalarlo más tarde sin conexión a Internet? .

Referencias


1
No creo que funcione para paquetes entre la última versión ubicada @updatesy la versión inicial para el sistema operativo ubicado @fedora. Por ejemplo, si intenta instalar httpd-2.4.8-1, yumdiría que el paquete no está disponible.
Desbordamiento de preguntas

@QuestionOverflow: no sigue. Esa versión no se muestra como disponible en el repositorio.
slm

1
Permítanme intentarlo nuevamente con un ejemplo real de mi registro de yum. python-libs-2.7.5-12.fc20.x86_64una vez fue instalado en mi computadora pero desde entonces ha sido reemplazado. Suponiendo que ahora quiero instalar este paquete específico, yumdownloader python-libs-2.7.5-12*diría No Match for argument python-libs-2.7.5-12* Nothing to download. Lo que estoy tratando de decir es que una vez que llegue un nuevo paquete, el viejo ya no será accesible desde yum. Solo puede instalar el último paquete o la versión inicial, pero no las versiones intermedias.
Desbordamiento de preguntas

2
@QuestionOverflow: en ese escenario, creo que debe usar yum downgrade ...si el paquete ya estaba instalado y está intentando volver a él más tarde. En mi QI intentaba mostrar cómo se seleccionaría manualmente una versión particular de un paquete que aún no se había instalado. docs.fedoraproject.org/en-US/Fedora/14/html/…
slm

No, no funciona incluso cuando se actualiza a un paquete específico. Experimenté esto con una instalación nueva hace solo unos días. Solo puede actualizar al último paquete y no a cualquier versión que desee.
Desbordamiento de preguntas

6

Otra opción, puede descargar el rpmarchivo y luego indicarle yumque haga lo siguiente localinstall:

yum localinstall /path/to/package.rpm

Un buen lugar para obtener los paquetes que necesita es rpmfind.com y buscar el nombre del paquete.


¿Existe una URL que contenga la mayoría, si no todas, las versiones de los archivos rpm?
Desbordamiento de preguntas

@QuestionOverflow: rpmfind.net
cuonglm

44
También hay yum --downloadonly <package>, seguido de yum localinstall <path to package>, también. También puede usar la utilidad yumdownloader <package>también.
slm

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.