Cómo revertir las actualizaciones de Pacman en Arch Linux

Cómo revertir las actualizaciones de Pacman en Arch Linux

Arch Linux a menudo se elogia por su software de borde sangrado y su modelo de lanzamiento rodante. Discutimos estas características más en profundidad en nuestro artículo comparando Arch Linux y Manjaro. Además de este elogio, Arch Linux también tiene la reputación de ser inestable. Esta reputación proviene de la naturaleza a veces impredecible del software de borde hemorragia. El último software de los desarrolladores ascendentes puede contener errores que no fueron evidentes durante las pruebas iniciales. Como resultado, el riesgo siempre está presente que la actualización con el administrador de paquetes, Pacman, puede provocar resultados inesperados. Estos pueden incluir una pieza de software específica que ya no funciona correctamente (o en absoluto) o incluso múltiples aplicaciones o entornos de escritorio ya no funcionan como se esperaba como se esperaba.

Hacer una copia de seguridad de su sistema GNU/Linux regularmente es la mejor protección para mitigar el dolor de cabeza que esto podría causar. No hay escasez de soluciones de respaldo para Linux; Algunas de las opciones de copia de seguridad incluyen DD, BackuppC, RSYNC, FSarchiver, RSNAPSHOT. Si tiene una solución de respaldo regular en su lugar, entonces puede ser reconfortante saber que podría restaurar desde una copia de seguridad en caso de que un Pacman actualizar problemas causados, pero sería ideal si no tuviera que. En este artículo le mostraremos cómo retroceder Pacman Actualizaciones en Arch Linux. Hay dos maneras de lograr esto. Una forma es a través del caché de Pacman; el otro es usando el Arch Linux Archive. Discutiremos ambos métodos.

En este tutorial aprenderás:

  • Cómo revertir las actualizaciones de Arch Linux usando el caché de Pacman
  • Cómo revertir las actualizaciones de Arch Linux usando el Arch Linux Archive
Cómo revertir las actualizaciones de Pacman en Arch Linux

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Arch Linux
Software Pacman
Otro Acceso privilegiado a su sistema Linux como root o a través del sudo dominio.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$ - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Cómo revertir las actualizaciones de Arch Linux usando el caché de Pacman

Cada vez que instala o actualiza un paquete Pacman Guarda este paquete en /var/cache/pacman/pkg/. Pacman también le permite actualizar manualmente un paquete a través del -U bandera. Como resultado, este método de actualización también se puede usar para instalar una versión anterior del paquete, degradando efectivamente el paquete.

Degradar un solo paquete

Supongamos que acaba de actualizar su sistema a través del $ sudo pacman -syu comando y luego se abre Firefox para navegar por la web, solo para darse cuenta de que ahora se bloquea, mientras que nunca antes había tenido. Puedes degradar fácilmente Firefox a la versión anterior que había instalado utilizando el caché de Pacman.

Primero, examine el Firefox Paquetes enumerados en /var/cache/pacman/pkg/

$ ls/var/cache/pacman/pkg/firefox* 

Debería ver la última versión a la que acaba de actualizar y cualquier versiones anteriores que haya instalado. En nuestro ejemplo, esta es la salida que recibimos.

/var/cache/pacman/pkg/firefox-81.0.1-1-x86_64.PKG.alquitrán.ZST/VAR/CACHE/PACMAN/PKG/FIREFOX-83.0-2-x86_64.PKG.alquitrán.zest 

Sabemos que actualizamos desde la versión 81.0.1-1 a 83.0-2 y sospecha que puede haber causado un problema. Para probar esta teoría, simplemente reversa a la versión 81.0.1-1 Usando el caché de Pacman con el siguiente comando.

$ sudo Pacman -u/var/cache/pacman/pkg/firefox -81.0.1-1-x86_64.PKG.alquitrán.zest 


Verá la siguiente salida.

Carga de paquetes ... Advertencia: paquete de degradación Firefox (83.0-2 => 81.0.1-1) Resolución de dependencias ... buscando paquetes conflictivos ... paquetes (1) Firefox-81.0.1-1 Tamaño total instalado: 206.76 Tamaño de actualización de la red MIB: -0.13 MIB :: proceder con la instalación? [Y/n] 

Una vez que escribas Y Para continuar, tendrá la versión previamente instalada de Firefox instalado y puede abrirlo para ver si el problema se ha resuelto.

Degradación de múltiples paquetes

Usando el caché de Pacman, puede degradar múltiples paquetes proporcionándolos como argumentos separados para Pacman -u.
Por ejemplo

$ sudo Pacman -u/var/cache/pacman/pkg/firefox -81.0.1-1-x86_64.PKG.alquitrán.ZST/VAR/CACHE/PACMAN/PKG/ALSA-LIB-1.2.3.2-1-x86_64.PKG.alquitrán.ZST/VAR/CACHE/PACMAN/PKG/ADWAITA-ICON-THEME-3.38.0-1-cualquier.PKG.alquitrán.zest 

Al degradar múltiples paquetes, puede ser beneficioso moverse al /var/cache/pacman/pkg Directorio para que no necesite escribir la ruta completa de cada paquete que desea degradar.

$ CD/VAR/CACHE/PACMAN/PKG $ SUDO PACMAN -U Firefox -81.0.1-1-x86_64.PKG.alquitrán.ZST alsa-lib-1.2.3.2-1-x86_64.PKG.alquitrán.ZST ADWAITA-ICON-TETRO-3.38.0-1-cualquier.PKG.alquitrán.zest 

Lo más probable es que esté comenzando a pensar que degradar una gran cantidad de paquetes de esta manera sería tedioso por decir lo menos. Puede encontrarse en situaciones en las que sospecha que 20 paquetes diferentes podrían estar causando un problema o no tiene idea de qué paquetes están causando un problema y desea rebajarlos a todos. Estos escenarios pueden ser más adecuados para usar el Arch Linux Archive, Pero antes de discutir eso, examinemos algunos ejemplos de situaciones en las que podríamos piratear una solución para usar el caché de Pacman Para este propósito, sin tener que escribir manualmente cada nombre del paquete.

Degradación de múltiples paquetes relacionados con un esquema de nomenclatura similar

Supongamos que acaba de encender su máquina después de no usarla durante unas semanas. Proceda a actualizar su sistema a través del $ sudo pacman -syu comando y nota que todas sus aplicaciones basadas en QT no funcionan correctamente, pero todas las demás aplicaciones son. Porque muchos de los paquetes y bibliotecas de QT fundamentales tienen QT En el nombre de archivo y es muy poco probable que los paquetes que no son de QT tengan esto en el nombre de archivo, es posible revertir solo las actualizaciones de QT desde la última actualización del sistema.

Siempre que realice una actualización usando Pacman un registro de exactamente lo que actualizó y cuándo se mantiene en /var/log/Pacman.registro. Una línea de ejemplo sigue a continuación.

[2020-11-30T05: 39: 16-0500] [ALPM] actualizado QT5-XMLPatns (5.15.1-1 -> 5.15.2-1) 


Podemos usar este registro para ayudarnos a rebajar sistemáticamente solo los paquetes QT buscando las líneas en el Pacman.registro que muestran paquetes que contienen QT en el nombre de archivo que se actualizaron hoy y realizó algunas manipulación de texto y luego los proporcionan como argumentos a Pacman -u en un bucle for. El ejemplo a continuación supone que la fecha actual es el 30 de noviembre de 2020. Ajuste la fecha en consecuencia si desea usarla.

$ grep -a Qt/var/log/Pacman.registro | GREP 2020-11-30> /TMP /QTUPDATES.txt $ awk 'imprimir $ 4' /tmp /qtupdates.txt> /tmp /líneas1; AWK 'imprimir $ 5' /tmp /qtupdates.txt | sed 's/(/ -/g'>/tmp/líneas2 $ paste/tmp/line1/tmp/lines2>/tmp/líneas $ tr -d "[: en blanco:]"/tmp/paquetes $ cd/var/ caché/pacman/pkg/$ para i en $ (cat/tmp/paquetes); do sudo pacman - -noconfirm -u "$ i"*; hecho 

Degradación de todos los paquetes mejorados

Supongamos que acaba de encender su máquina después de no usarla durante unas semanas. Proceda a actualizar su sistema a través del $ sudo pacman -syu comandar y luego nota que todo su sistema se siente anormalmente lento. No tiene idea de qué actualización del paquete podría estar causando que esto suceda y desea retroceder temporalmente los 512 a la versión anterior que había instalado.

Esto en realidad no requiere más esfuerzo que el ejemplo anterior. Realizas los mismos pasos, excepto que usas el Pacman.registro Archivo para eliminar los nombres de todos los paquetes que se actualizaron hoy no solo los que se ajustan a un esquema de nomenclatura en particular. Esto funcionará para cualquier número de paquetes, esencialmente funcionando como un gran botón de deshacer para Pacman. El ejemplo a continuación supone que la fecha actual es el 30 de noviembre de 2020. Ajuste la fecha en consecuencia si desea usarla.

$ GREP -A actualizado/var/log/Pacman.registro | GREP 2020-11-30> /TMP /LastUpdates.txt $ awk 'imprimir $ 4' /tmp /lastupdates.txt> /tmp /líneas1; AWK 'imprimir $ 5' /tmp /lastupdates.txt | sed 's/(/ -/g'>/tmp/líneas2 $ paste/tmp/line1/tmp/lines2>/tmp/líneas $ tr -d "[: en blanco:]"/tmp/paquetes $ cd/var/ caché/pacman/pkg/$ para i en $ (cat/tmp/paquetes); do sudo pacman - -noconfirm -u "$ i"*; hecho 

Cómo revertir las actualizaciones de Arch Linux usando el Arch Linux Archive

El Arch Linux Archive es un archivo oficial que contiene instantáneas de versiones anteriores de paquetes. Estos se guardan en el directorio de paquetes del sitio. Hay dos beneficios potenciales para usar el Arch Linux Archive sobre el caché de Pacman. Primero el caché de Pacman ocupa espacio en su almacenamiento local. Como resultado, algunas personas elegirán despejar regularmente su caché. En segundo lugar, el archivo pone a disposición todas las versiones anteriores de un paquete, no solo las que había instalado previamente.

Degradar un solo paquete

Para degradar un paquete a una versión anterior, primero lo encuentre en el archivo y luego use Pacman para degradar a esa versión específica. Si reexaminamos nuestro ejemplo anterior de degradación Firefox, Ya no estamos limitados a degradación de la versión 83.0-2 a 81.0.1-1. Como puede ver en el Archivo de Firefox, también tenemos la opción de degradar a las siguientes versiones intermedias: 81.0.2-1, 82.0-1, 82.0.2-1, 82.0.3-1, 83.0-1.

Para rebajar a Firefox versión 83.0-1 utilizando el Arch Linux Archive Ingrese el siguiente comando.

$ sudo Pacman -U https: // Archivo.archinux.org/paquetes/f/Firefox/Firefox-83.0-1-x86_64.PKG.alquitrán.zest 


Degradar todos los paquetes a una fecha anterior

Otra opción que tiene disponible al usar el Arch Linux Archive es restaurar todos los paquetes de su sistema a la versión "actual" que existía en los repositorios en una fecha específica en el tiempo. Esto puede ser útil si se encuentra con problemas con su sistema de arco ahora, pero recuerda que hace unas semanas no tenía esos problemas. En el siguiente ejemplo, degradaremos todos los paquetes al 10 de noviembre de 2020.
Para degradar los paquetes, tendremos que hacerle saber a Pacman que queremos usar el repositorio de archivo editando /etc/pacman.d/espejo.
Antes de realizar cualquier cambio en el archivo, se recomienda hacer una copia de seguridad para que podamos volver fácilmente a la actual espejo Archivo cuando nos gustaría.

$ sudo cp /etc /pacman.D/MirrorList ,.bak 

A continuación, edite su /etc/pacman.d/espejo Archivo usando su editor de elección:

$ sudo vim /etc /Pacman.d/espejo 

y cambiar el contenido a lo siguiente.

### Arch Linux Repository MirrorList ### Creado para rebajar al 10 de noviembre de 2020 servidor = https: // Archive.archinux.org/repos/2020/10/11/$ repo/OS/$ Arch 

Ahora para finalizar la degradación de los paquetes ingrese el siguiente comando.

$ sudo Pacman -Syyuu 

Conclusión

En este artículo examinamos dos métodos para revertir o rebajar los paquetes en Arch Linux, el caché de Pacman y el Arch Linux Archive. Ambos son métodos poderosos que tienen sus propias ventajas. Reflexionemos brevemente sobre esas ventajas al concluir este artículo.

El principal beneficio de usar el caché de Pacman es que no requiere una conexión a Internet o la descarga de paquetes, ya que se almacena localmente. Como resultado, el proceso de degradación es más rápido. Otro beneficio es que el caché de Pacman Contiene versiones de paquetes que ha instalado en su sistema antes, por lo tanto, lo más probable es que tenga una idea de qué tan bien estaban funcionando. Un tercer beneficio es que puede degradar múltiples paquetes sin tener que editar ningún archivo de configuración.

El principal beneficio de usar el Arch Linux Archive es que puede degradar a cualquier versión de un paquete, independientemente de si alguna vez lo había instalado previamente. Otro beneficio es que no ocupa el almacenamiento local, por lo que si se está agotando el almacenamiento y desea borrar su caché de Pacman, sabe que hay otra opción viable para degradación. Un tercer beneficio es que puede degradar fácilmente cada paquete en su sistema simplemente editando un solo archivo de configuración.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Instalación de Manjaro Linux
  • Guía para principiantes de Manjaro Linux
  • La mejor distribución de Linux para desarrolladores
  • Manjaro Linux Windows 10 Dual Boot
  • Manjaro Linux vs Arch Linux
  • Agregar repositorio de borde sangrado a Kali Linux
  • Cómo actualizar y actualizar Manjaro Linux
  • Crea Manjaro Linux Bootable USB
  • Instale Manjaro en Virtualbox