Downgrade: Volver a una versión previa de un paquete de software

Downgrade paquete en Linux

Lo normal es que siempre actualicemos los paquetes de software para conseguir versiones más actualizadas de estos. Normalmente, los desarrolladores se esfuerzan en que con la llegada de nuevas versiones cada vez son mejores. Pero no siempre ocurre eso. En ocasiones las versiones previas de un paquete pueden ser más estables, funcionar mejor por algún motivo, o incluso que el usuario le guste más la versión anterior a la actualización porque tenga algo que el nuevo ya no implemente.

Si ese es tu caso, en este tutorial te vamos a mostrar cómo puedes hacer downgrade de cualquier paquete, es decir, revertir una actualización y conseguir la versión previa instalada en tu sistema. De esa forma no tendrás problema si las nuevas versiones te han defraudado. ¡Pues vamos a ello!

Como no hay un método común para todas las distros, voy a mostrar cómo se puede hacer con los gestores de paquetes más populares. Por cierto, si usas otros métodos como YaST, Synaptic, etc., los procedimientos son también posibles, pero de forma gráfica y mucho más intuitiva. Aquí explicaré los métodos a través de la consola, que son los que generan mayor confusión…

apt-get: Debian / Ubuntu y derivados

Para todas las distribuciones basadas en paquetes DEB y con el gestor de paquetes apt-get, puedes realizar el cambio de una versión más moderna a una anterior de una forma sencilla. Por ejemplo, vamos a tomar como referencia el paquete firefox, imaginando que queremos volver de una versión actual a otra previa. En ese caso, puedes ejecutar las siguientes órdenes:

  • Puedes conseguir información sobre el paquete firefox (o el que necesites, solo tienes que cambiar el nombre por el adecuado en tu caso), como las versiones previas instaladas, etc., puedes usar el siguiente comando:

sudo apt-cache showpkg firefox

  • Una vez sepas bien la versión previa que quieres instalar, puedes usar el siguiente comando para instalar el paquete que quieres. En nuestro caso, en el comando anterior hemos obtenido un paquete llamado firefox=57.3-build1-0ubuntu1 que es el que queremos instalar:

sudo apt-get install firefox=57.3-build1-0ubuntu1

  • Tras hacer esto, ya tendrías la versión anterior de este programa instalada. Ya sabes, que si no especificas la versión con APT, te instala la última versión disponible en el repositorio de dicho paquete. En este caso hemos indicado la versión específica.

Recuerda que es posible que dos paquetes de versiones diferentes convivan en GNU/Linux sin problema. Así que si quieres tener dos versiones diferentes de un mismo paquete podrás hacerlo…

pacman: Arch Linux y derivados

En el caso de que tengas Arch Linux, entonces tendrás que lidiar con pacman como gestor de paquetes. Esta herramienta también permite volver a una versión previa si lo deseas. La forma de hacerlo es un poco diferente, pero igualmente sencilla:

  • Para buscar en la cache de paquetes las versiones disponibles, puedes consultar el registro. Para filtrar los resultados solo para los paquetes firefox en nuestro caso (pero ya sabes que puedes sustituir el nombre del paquete por el que quieras…), puedes usar:

ls /var/cache/pacman/pkg/ | grep firefox

  • Ahora, una vez sepas la versión que quieres, puedes usar el siguiente comando para instalarla:

sudo pacman -U /var/cache/pacman/pkg/firefox-57.3.pkg.tar.xz

zypper: SUSE / openSUSE y derivados

En el mundo SUSE, puedes usar el gestor de paquetes zypper. También es un método fácil para poder conseguir el paquete en una versión previa. En nuestro caso, con Mozilla Firefox, sería así:

  • Lo primero es consultar la cache de paquetes de forma similar a como lo hacíamos para Arch, con el siguiente comando para saber las versiones previas del paquete disponibles:

cat /var/log/zypp/history | grep firefox

  • Una vez localizada la versión previa, puedes instalar dicha versión usando zypper de esta manera:

sudo zypper -in -f firefox_57.3

dnf: Red Hat / CentOS / Fedora y derivados

Por último, en distribuciones basadas en Fedora se usará yum o dnf. Para poder revertir una actualización de un paquete y volver a una versión previa con tu downgrade, puedes usar las siguientes órdenes:

  • En este caso lo primero será ver las versiones previas del paquete que estés intentando instalar en los repositorios de DNF. Para nuestro ejemplo, puedes usar este comando para obtener la lista:

sudo dnf --showduplicates list firefox

  • Ahora, una vez te hayas fijado bien en el nombre de la versión que deseas instalar, solo tienes que copiarlo de los datos arrojados en la salida del comando anterior y pegarlo en el siguiente. Por ejemplo:
<pre>sudo dnf install firefox-57.3.fc28</pre>

También podrás usar snapshots o instantáneas para volver a versiones previas. Para eso, puedes usar los siguientes comandos, que lo que harán, respectivamente, es obtener el historial, luego obtener información de una transacción del historial con su ID (la que quieras en tu caso), y luego se revierte al estado de esa transacción indicando el ID (en nuestro ejemplo la 32):


sudo dnf history

sudo dnf history info 32

sudo dnf history undo 32

Espero que este tutorial te haya ayudado a resolver los problemas que te estaba causando una nueva versión de un paquete de software en tu distro favorita. Ya sabes que puedes dejar tus comentarios con dudas o sugerencias


3 comentarios, deja el tuyo

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: AB Internet Networks 2008 SL
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   anonimo dijo

    En gentoo, se enmascara la versión del paquete que ya no se desea, nueva poniendola explicitamente en el archivo /etc/portage/package.mask/package.mask.
    Por ejemplo si no queremos el último firefox que es el 69.0.1 se lo decimos asi:

    =www-client/firefox-69.0.1
    o si no queremos ninguna versión que sea superior en futuras actualizaciones
    >=www-client/firefox-69.0.1

    Luego hacer el downgrade sería así:
    # emerge -av1 firefox
    These are the packages that would be merged, in order:
    Calculating dependencies… done!
    [ebuild UD ] www-client/firefox-68.1.0
    Would you like to merge these packages? [Yes/No] y

    La UD indica Update Downgrade

    1.    Isaac dijo

      Hola, muchas gracias por esta aportación. Me decidí a poner esas distros porque son las más usadas, pero evidentemente hay grandes distros como Slackware, Gentoo y demás de las que no hablé. A veces es complicado decantarse por unas u otras, y siempre tienes que elegir y dejar algunas fuera…
      Un saludo!

  2.   Alex dijo

    ¿Hay alguna forma de hacer esto con muchos paquetes a la vez?