¿Cómo degradar un paquete a través de apt-get?


310

¿Cómo puedo degradar un paquete a una versión anterior a través de apt-get?

Otras herramientas también son aceptables pero apt-getse prefieren.

Respuestas:


308

Si tiene el número de versión, o la versión de destino, apt-getadmite elegir una versión o versión de destino en particular. Se pueden encontrar más detalles en la página del manual de apt-get . También se puede acceder desde la terminal escribiendoman apt-get

sudo apt-get install <package-name>=<package-version-number> O

sudo apt-get -t=<target release> install <package-name>

es el comando a ejecutar. Esto se puede usar para degradar un paquete a una versión específica.

Se ha señalado útilmente en los comentarios que

  • apt-cache showpkg <package-name>enumera todas las versiones disponibles. (h / t Gavilán )
  • apt-mark hold <package-name> "retiene" el paquete en la versión actual, evitando actualizaciones automáticas. (h / t Luís de Sousa )

58
Además, use apt-cache showpkg <package-name>para enumerar las versiones disponibles.
— Sparhawk

16
Y luego también puede que desee ejecutar: apt-mark hold <package-name>para evitar actualizaciones automáticas.
— Luís de Sousa

44
Descubrí que aptituderebajó las dependencias mejor que apt-get.
— krispy

55
apt-cache policy <package-name>muestra solo las versiones instaladas y disponibles
— Michael Lawton

18
¿Y si showpkgno muestra la versión que le interesa?
— demongolem

104

UTILIZAR

apt-get install «pkg»=«version»

O

sudo aptitude install «pkg»=«version»

Donde «pkg» es el nombre del paquete y «versión» es el número de versión.


3
cuando escribo apt-get install pkg=versionapt-get ofrece eliminar casi la mitad de todos los paquetes instalados que, por supuesto, no es lo que quiero hacer
— Dfr

Como se señaló en la respuesta (por lo demás idéntica) con más votos, este parece ser uno de los casos clave donde aptitudehace un trabajo mucho mejor que apt-get. En mi caso, apt-getrechacé rotundamente la solicitud de degradación, mientras que aptitudeseñaló que había otros paquetes que dependían de la versión más nueva (y por lo tanto, necesitaban una degradación al mismo tiempo).
— sxc731

28

Si ha actualizado el software usando ppa, puede degradarlo usando ppa-purge. Primero debes instalar ppa-purgeusando este código:

sudo apt-get install ppa-purge

Luego puedes eliminar el ppa usando el comando

sudo ppa-purge ppa: usuario / nombre-ppa

esto degradará automáticamente el software a su versión original que se envió con Ubuntu.


1
Esta solución no tiene comparación en caso de que el paquete tenga dependencias que también tengan que degradarse. ¡Gracias!
— y el

1
Sí, esta es la solución que mejor funcionó para mí para degradar el escritorio KDE / Plasma desde kubuntu-ppa / backports: una cosa que noté es que el archivo .list de PPA no debe tener la deb comentada, por lo que ppa-purge puede hacer referencia a todos los archivos que necesitan ser removidos para la purga. Me tomó un minuto descubrir por qué no estaba funcionando al principio. Espero que ayude a otras personas!
— AveryFreeman

10

Para rebajar tienes que hacer un comando como

 sudo apt-get install pkg_name=version

en tu terminal

En lugar de versioncolocar la versión anterior a la que desea degradar.


No funciona al menos para linux-generic, que depende de paquetes que también deberían degradarse. Me sale paste.ubuntu.com/p/NWSmf2ZwTy
— mymedia

9

En mi opinión, primero debe desinstalar o purgar el paquete, como:

sudo apt-get remove <package>

o

sudo apt-get purge <package>

Luego, puede descargar la versión que desea instalar y guardarla en una carpeta, por ejemplo abc.deben Descargas. Abra la terminal, muévase a la carpeta usando el cdcomando e instale la versión anterior usando dpkg:

sudo dpkg -i abc.deb

O bien, hay una pequeña utilidad llamada ppa-purgesi quiere degradar paquetes actualizados a través de PPA.

Ver este hilo: http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html


3
eliminar un paquete puede eliminar muchos dependientes, lo que da como resultado un sistema inutilizable. Sin embargo, ppapurge suena interesante.
— escriba

12
¿Puede explicar por qué cree que deberíamos desinstalar primero los paquetes (como un paso separado) antes de instalar versiones anteriores de ellos?
— Eliah Kagan


1
@temoto ese enlace es para degradar versiones unstable-> testing-> stableno para degradar paquetes individuales.
— Braiam

0

Esta pregunta es antigua, pero Google me trajo hasta aquí y no encontré una solución simple que no requiera pasar la versión manual al degradar un montón de paquetes a versiones anteriores.

Entonces, tal vez alguien que también lo necesite encuentre útil mi solución también.

Hay una herramienta llamada apt-show-versionsque muestra las versiones instaladas.

Puede degradar fácilmente todos los paquetes necesarios ajustando la expresión regular, pero aquí está:

$ sudo apt-get install $(apt-show-versions | grep -P 'newer than version in archive' | awk -F: '{print $1"/jessie"}')

En lugar de jessieusted puede usar buster/ xenial/ etc. dependiendo de sus necesidades.


O degradar de forma automática a hasta a la fecha de instalación de liberación: sudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}'). Prefiero usar -Fpor grepaquí.
— jarno

Debe ejecutar sudo apt-show-versions -iprimero, si el caché del paquete no está actualizado.
— jarno
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.