Como reverter as atualizações do Pacman no Arch Linux

Como reverter as atualizações do Pacman no Arch Linux

Arch Linux é frequentemente elogiado por seu software de borda sangrando e modelo de liberação rolante. Discutimos esses recursos mais detalhados em nosso artigo comparando Arch Linux e Manjaro. Além desse elogio, o Arch Linux também tem uma reputação de ser instável. Esta reputação deriva da natureza às vezes imprevisível do software de borda sangrando. O software mais recente dos desenvolvedores upstream podem conter bugs que não foram aparentes durante os testes iniciais. Como resultado, o risco está sempre presente que a atualização com o gerente de pacotes, Pacman, pode trazer resultados inesperados. Isso pode incluir um software específico que não está mais funcionando corretamente (ou em todo) ou mesmo vários aplicativos ou ambientes de desktop não funcionando mais conforme o esperado.

Fazer backup do seu sistema GNU/Linux regularmente é a melhor salvaguarda para mitigar a dor de cabeça que isso pode causar. Não faltam soluções de backup para o Linux; Algumas das opções de backup incluem dd, backuppc, rsync, fsarchiver, rsnapshot. Se você tiver uma solução de backup regular no lugar, pode ser reconfortante saber que você pode restaurar de um backup no caso de um Pacman a atualização causou problemas, mas seria ideal se você não tivesse que. Neste artigo, mostraremos como reverter Pacman Atualizações no Arch Linux. Existem duas maneiras de realizar isso. Uma maneira é através do Pacman Cache; o outro é usando o Arquivo Arch Linux. Discutiremos os dois métodos.

Neste tutorial, você aprenderá:

  • Como reverter as atualizações do Arch Linux usando o Pacman Cache
  • Como reverter as atualizações do Arch Linux usando o Arch Linux Archive
Como reverter as atualizações do Pacman no Arch Linux

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Arch Linux
Programas Pacman
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux fornecidos sejam executados com privilégios de raiz diretamente como usuário root ou por uso de sudo comando
$ - exige que os comandos Linux sejam executados como um usuário não privilegiado regular

Como reverter as atualizações do Arch Linux usando o Pacman Cache

Toda vez que você instala ou atualiza um pacote Pacman salva este pacote em /var/cache/pacman/pkg/. Pacman também permite que você atualize manualmente um pacote via -você bandeira. Como se vê, esse método de atualização também pode ser usado para instalar uma versão mais antiga do pacote, diminuindo efetivamente o pacote.

Rebaixando um único pacote

Suponha que você acabou de atualizar seu sistema através do $ sudo pacman -syu comando e então você se abre Raposa de fogo Para navegar na web, apenas para perceber que agora trava, enquanto nunca teve antes. Você pode fazer o downgrade facilmente Raposa de fogo para a versão anterior que você instalou usando o Pacman Cache.

Primeiro, examine o Raposa de fogo pacotes listados em /var/cache/pacman/pkg/

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

Você deve ver a versão mais recente com a qual acabou de atualizar e todas as versões anteriores que você instalou. Em nosso exemplo, esta é a saída que recebemos.

/var/cache/pacman/pkg/firefox-81.0.1-1-x86_64.pkg.alcatrão.zst/var/cache/pacman/pkg/firefox-83.0-2-x86_64.pkg.alcatrão.zst 

Sabemos que atualizamos da versão 81.0.1-1 para 83.0-2 e suspeite que isso pode ter causado um problema. Para testar essa teoria, basta reverter a versão 81.0.1-1 Usando o cache do Pacman com o seguinte comando.

$ sudo pacman -u/var/cache/pacman/pkg/firefox -81.0.1-1-x86_64.pkg.alcatrão.zst 


Você verá a seguinte saída.

Pacotes de carregamento… Aviso: rebaixando o pacote Firefox (83.0-2 => 81.0.1-1) Resolvendo dependências… Procurando pacotes conflitantes… Pacotes (1) Firefox-81.0.1-1 Tamanho total instalado: 206.76 Tamanho da atualização líquida do MIB: -0.13 MIB :: Prossiga com a instalação? [S/N] 

Depois de digitar y Para continuar, você terá a versão anteriormente instalada de Raposa de fogo instalado e pode abri -lo para ver se o problema foi resolvido.

Rebaixando vários pacotes

Usando o cache do Pacman, você pode fazer o downgrade de vários pacotes, fornecendo -os como argumentos separados para Pacman -u.
Por exemplo

$ sudo pacman -u/var/cache/pacman/pkg/firefox -81.0.1-1-x86_64.pkg.alcatrão.zst/var/cache/Pacman/pkg/alsa-LIB-1.2.3.2-1-x86_64.pkg.alcatrão.zst/var/cache/Pacman/pkg/adwaita-icon-theme-3.38.0-1-Any.pkg.alcatrão.zst 

Ao rebaixar vários pacotes, pode ser benéfico mudar para o /var/cache/Pacman/pkg diretório para que você não precise digitar o caminho completo de cada pacote que deseja downgrade.

$ cd/var/cache/Pacman/pkg $ sudo pacman -U Firefox -81.0.1-1-x86_64.pkg.alcatrão.ZST ALSA-LIB-1.2.3.2-1-x86_64.pkg.alcatrão.ZST Adwaita-icon-Theme-3.38.0-1-Any.pkg.alcatrão.zst 

Muito provavelmente, você está começando a pensar que rebaixar um grande número de pacotes dessa maneira seria tedioso para dizer o mínimo. Você pode se encontrar em situações em que suspeita que 20 pacotes diferentes possam estar causando um problema ou não tem idéia de quais pacotes estão causando um problema e deseja downgrade de todos eles. Esses cenários podem ser mais adequados para usar o Arquivo Arch Linux, Mas antes de discutirmos que vamos examinar alguns exemplos de situações em que poderíamos invadir uma solução para usar o Pacman Cache Para esse fim, sem precisar digitar manualmente o nome de cada pacote.

Rebaixando vários pacotes relacionados com um esquema de nomenclatura semelhante

Suponha que você apenas ligou sua máquina depois de não usá -la por algumas semanas. Você prossegue para atualizar seu sistema através do $ sudo pacman -syu comando e você notará que todos os seus aplicativos baseados em QT não estão funcionando corretamente, mas todos os outros aplicativos são. Porque muitos dos pacotes e bibliotecas QT fundamentais têm Qt No nome do arquivo e é muito improvável que quaisquer pacotes não QT tenham isso no nome do arquivo, é possível reverter apenas as atualizações QT da última atualização do sistema.

Sempre que você executa uma atualização usando Pacman um registro exatamente do que você atualizou e quando é mantido em /var/log/Pacman.registro. Um exemplo de linha segue abaixo.

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


Podemos usar este log para nos ajudar a rebaixar sistematicamente apenas os pacotes QT, procurando as linhas no Pacman.registro que mostram pacotes que contêm QT no nome do arquivo que foram atualizados hoje e realizando alguma manipulação de texto sobre eles e depois fornecendo -os como argumentos para Pacman -u em um loop. O exemplo abaixo assume que a data atual é 30 de novembro de 2020. Ajuste a data de acordo se você quiser fazer uso dela.

$ grep -a qt/var/log/pacman.log | Grep 2020-11-30> /tmp /qtupdates.txt $ awk 'print $ 4' /tmp /qtupdates.txt> /tmp /lines1; awk 'print $ 5' /tmp /qtupdates.txt | sed 's/(/ -/g'>/tmp/lines2 $ paste/tmp/lines1/tmp/lines2>/tmp/linhas $ tr -d "[: em branco:]"/tmp/pacotes $ cd/var/var/ cache/Pacman/pkg/$ para i em $ (cat/tmp/pacotes); do sudo pacman -noconfirm -u "$ i"*; 

Rebaixando todos os pacotes atualizados

Suponha que você apenas ligou sua máquina depois de não usá -la por algumas semanas. Você prossegue para atualizar seu sistema através do $ sudo pacman -syu comando e então você percebe que todo o seu sistema parece anormalmente lento. Você não tem idéia de qual atualização do pacote poderia estar fazendo com que isso aconteça e deseja reverter temporariamente todos os 512 deles para a versão anterior que você instalou.

Isso realmente não requer mais esforço do que o exemplo anterior. Você executa as mesmas etapas, exceto que usa o Pacman.registro Arquivo para obter os nomes de todos os pacotes que foram atualizados hoje, não apenas aqueles que se encaixam em um esquema de nomeação específico. Isso funcionará para qualquer número de pacotes, funcionando essencialmente como um grande botão de desfazer para Pacman. O exemplo abaixo assume que a data atual é 30 de novembro de 2020. Ajuste a data de acordo se você quiser fazer uso dela.

$ GREP -A Atualizado/Var/Log/Pacman.log | Grep 2020-11-30> /tmp /lastUpdates.txt $ awk 'print $ 4' /tmp /lastUpDates.txt> /tmp /lines1; awk 'print $ 5' /tmp /lastUpDates.txt | sed 's/(/ -/g'>/tmp/lines2 $ paste/tmp/lines1/tmp/lines2>/tmp/linhas $ tr -d "[: em branco:]"/tmp/pacotes $ cd/var/var/ cache/Pacman/pkg/$ para i em $ (cat/tmp/pacotes); do sudo pacman -noconfirm -u "$ i"*; 

Como reverter as atualizações do Arch Linux usando o Arch Linux Archive

O Arch Linux Archive é um arquivo oficial que contém instantâneos de versões anteriores de pacotes. Estes são salvos no diretório de pacotes do site. Existem dois benefícios potenciais em usar o Arquivo Arch Linux sobre o Pacman Cache. Primeiro, o Pacman Cache ocupa espaço no seu armazenamento local. Como resultado, algumas pessoas optam por limpar regularmente seu cache. Segundo, o arquivo disponibiliza todas as versões anteriores de um pacote, não apenas as que você instalou anteriormente.

Rebaixando um único pacote

Para rebaixar um pacote para uma versão anterior, primeiro você o encontra no arquivo e depois usa Pacman Para rebaixar para essa versão específica. Se reexaminarmos nosso exemplo anterior de rebaixamento Raposa de fogo, Não estamos mais limitados a rebaixar da versão 83.0-2 para 81.0.1-1. Como você pode ver no arquivo do Firefox, também temos a opção de fazer o downgrade para as seguintes versões intermediárias: 81.0.2-1, 82.0-1, 82.0.2-1, 82.0.3-1, 83.0-1.

Para rebaixar para Raposa de fogo versão 83.0-1 usando o Arquivo Arch Linux Digite o seguinte comando.

$ sudo pacman -u https: // arquivo.Archlinux.org/pacotes/f/firefox/firefox-83.0-1-x86_64.pkg.alcatrão.zst 


Downgrade todos os pacotes para uma data anterior

Outra opção que você tem disponível ao usar o Arquivo Arch Linux é restaurar todos os pacotes do seu sistema para a versão "atual" que existia nos repositórios em uma data específica no tempo. Isso pode ser útil se você estiver encontrando problemas com seu sistema de arco agora, mas você se lembra que há algumas semanas não estava tendo esses problemas. No exemplo seguinte, rebaixaremos todos os pacotes para 10 de novembro de 2020.
Para rebaixar os pacotes, teremos que informar a Pacman que queremos usar o repositório do arquivo, editando /etc/Pacman.D/Mirrorlist.
Antes de fazer alterações no arquivo, é recomendável fazer backup para que possamos facilmente voltar à corrente Mirrorlist arquivo quando gostaríamos de.

$ sudo cp /etc /Pacman.D/Mirorlist ,.bak 

Em seguida, edite seu /etc/Pacman.D/Mirrorlist Arquivo usando seu editor de escolha:

$ sudo vim /etc /Pacman.D/Mirrorlist 

e altere o conteúdo para o seguinte.

### Arch Linux Repository Mirrorlist ### Criado para downgrade para 10 de novembro de 2020 servidor = https: // arquivo.Archlinux.org/repos/2020/10/11/$ repo/OS/$ arch 

Agora, para finalizar o rebaixamento dos pacotes, insira o seguinte comando.

$ sudo pacman -syyuu 

Conclusão

Neste artigo, examinamos dois métodos para reverter ou rebaixar pacotes no Arch Linux, o Pacman Cache e a Arquivo Arch Linux. Ambos são métodos poderosos que têm suas próprias vantagens. Vamos refletir brevemente sobre essas vantagens ao concluir este artigo.

O principal benefício de usar o Pacman Cache é que não requer uma conexão com a Internet ou download de pacotes, pois é armazenado localmente. Como resultado, o processo de rebaixamento é mais rápido. Outro benefício é que o Pacman Cache Contém versões de pacotes que você instalou no seu sistema antes, portanto você provavelmente tem uma idéia de quão bem eles estavam trabalhando. Um terceiro benefício é que você pode fazer o downgrade de vários pacotes sem precisar editar nenhum arquivo de configuração.

O principal benefício de usar o Arquivo Arch Linux é que você pode fazer o downgrade para qualquer versão de um pacote, independentemente de você ter instalado anteriormente. Outro benefício é que ele não ocupa o armazenamento local; portanto, se você estiver com pouco armazenamento e gostaria de limpar seu cache do Pacman, você sabe que há outra opção viável para rebaixar. Um terceiro benefício é que você pode fazer o downgrade facilmente cada pacote em seu sistema apenas editando um único arquivo de configuração.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Instalação do Manjaro Linux
  • Guia para iniciantes do Manjaro Linux
  • Melhor distro Linux para desenvolvedores
  • Manjaro Linux Windows 10 Boot dual
  • Manjaro Linux vs Arch Linux
  • Adicionando repositório de borda sangrenta ao Kali Linux
  • Como atualizar e atualizar Manjaro Linux
  • Crie Manjaro Linux inicializável USB
  • Instale Manjaro no VirtualBox