Como fazer o downgrade de pacotes para uma versão específica com Apt no Debian, Ubuntu ou Linux Mint

12 de fevereiro de 2019

Este artigo explica como fazer o downgrade de um pacote para uma versão específica usando apt, no Debian, Ubuntu ou Linux Mint (a partir da linha de comando).

Às vezes, você pode encontrar problemas com um pacote atualizado recentemente e deseja fazer o downgrade dele. Para poder fazer o downgrade de um pacote no Debian, Ubuntu ou Linux Mint (e outras distribuições Linux baseadas em Debian/Ubuntu), a versão do pacote para o qual você deseja fazer o downgrade deve estar disponível em um repositório.

Da mesma série:

Para fazer o downgrade de um pacote para uma versão específica, você precisará acrescentar =version após o nome do pacote no comando de instalação, com version sendo a versão para a qual você deseja fazer o downgrade do pacote:

Comandos para usar no terminal

sudo apt install =

Exemplo 1.

Vejamos um exemplo simples. Atualmente tenho o Firefox 65 instalado no Ubuntu 18.10 e quero fazer o downgrade dele usando o apt. A primeira coisa a fazer é olhar as versões disponíveis, executando apt policy firefox (apt-cache a política também funciona):

$ apt policy firefox
firefox:
  Installed: 65.0+build2-0ubuntu0.18.10.1
  Candidate: 65.0+build2-0ubuntu0.18.10.1
  Version table:
 ***65.0+build2-0ubuntu0.18.10.1 500
        500 http://security.ubuntu.com/ubuntu cosmic-security/main amd64 Packages
        500 http://archive.ubuntu.com/ubuntu cosmic-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     63.0+build1-0ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu cosmic/main amd64 Packages

Este comando apt mostra que a versão do Firefox instalada em meu sistema é 65.0 + build2-0ubuntu0.18.10.1 e está disponível nos repositórios cosmic-security e cosmic-updates. Há uma versão mais antiga, 63.0 + build1-0ubuntu1, disponível no repositório principal, portanto, o Firefox pode ser atualizado para esta versão.

Para fazer o downgrade do Firefox da versão 65.0 + build2-0ubuntu0.18.10.1 instalada para a versão 63.0 + build1-0ubuntu1 do repositório principal, o comando seria:

Comandos para usar no terminal

sudo apt install firefox=63.0+build1-0ubuntu1

Este comando faz o downgrade do Firefox sem ter que fazer o downgrade de nenhum outro pacote, porque o Firefox não depende de nenhuma versão restrita de pacote:

$ sudo apt install firefox=63.0+build1-0ubuntu1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be DOWNGRADED:
  firefox
0 upgraded, 0 newly installed, 1 downgraded, 0 to remove and 51 not upgraded.
Need to get 46.1 MB of archives.
After this operation, 4,243 kB disk space will be freed.
Do you want to continue? [Y/n]

No entanto, há casos em que você deve resolver algumas dependências para poder fazer o downgrade do pacote e veremos um exemplo como esse a seguir.

Exemplo 2.

Vejamos um exemplo mais complicado - um pacote que não pode ser feito o downgrade diretamente usando o apt sem também fazer o downgrade de algumas de suas dependências.

$ apt policy chromium-browser
chromium-browser:
  Installed: 72.0.3626.81-0ubuntu1~ppa2~18.10.1
  Candidate: 72.0.3626.81-0ubuntu1~ppa2~18.10.1
  Version table:
 ***72.0.3626.81-0ubuntu1~ppa2~18.10.1 500
        500 http://ppa.launchpad.net/saiarcot895/chromium-beta/ubuntu cosmic/main amd64 Packages
        100 /var/lib/dpkg/status
     71.0.3578.98-0ubuntu0.18.10.1 500
        500 http://security.ubuntu.com/ubuntu cosmic-security/universe amd64 Packages
        500 http://archive.ubuntu.com/ubuntu cosmic-updates/universe amd64 Packages
     69.0.3497.100-0ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu cosmic/universe amd64 Packages

O comando apt policy acima mostra que atualmente tenho o navegador beta do Chromium (versão 72) instalado a partir do Saiarcot Chromium Beta PPA, com duas versões mais antigas disponíveis nas atualizações/segurança do Ubuntu e nos repositórios principais.

Vamos tentar fazer o downgrade do navegador chromium da versão 72.0.3626.81-0ubuntu1 ~ ppa2 ~ 18.10.1 para a versão 71.0.3578.98-0ubuntu0.18.10.1 (dos repositórios de segurança/atualizações) usando o apt e ver o que acontece:

$ sudo apt install chromium-browser=71.0.3578.98-0ubuntu0.18.10.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 chromium-browser : Depends: chromium-codecs-ffmpeg-extra (= 71.0.3578.98-0ubuntu0.18.10.1) but 72.0.3626.81-0ubuntu1~ppa2~18.10.1 is to be installed or
                             chromium-codecs-ffmpeg (= 71.0.3578.98-0ubuntu0.18.10.1) but it is not going to be installed
                    Recommends: chromium-browser-l10n but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

O downgrade do navegador Chromium não funciona porque depende de chromium-codecs-ffmpeg-extra ou chromium-codecs-ffmpeg, com exatamente a mesma versão do pacote do navegador chromium. Nesse caso, vamos também fazer o downgrade do pacote chromium-codecs-ffmpeg-extra para a mesma versão:

$ sudo apt install chromium-browser=71.0.3578.98-0ubuntu0.18.10.1 chromium-codecs-ffmpeg-extra=71.0.3578.98-0ubuntu0.18.10.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  webaccounts-chromium-extension unity-chromium-extension adobe-flashplugin
Recommended packages:
  chromium-browser-l10n
The following packages will be REMOVED:
  chromium-browser-l10n chromium-chromedriver
The following packages will be DOWNGRADED:
  chromium-browser chromium-codecs-ffmpeg-extra
0 upgraded, 0 newly installed, 2 downgraded, 2 to remove and 51 not upgraded.
Need to get 58.8 MB of archives.
After this operation, 61.5 MB disk space will be freed.
Do you want to continue? [Y/n]

A saída do comando apt downgrade mostra que o chromium-browser agora pode ser desatualizado, mas o comando deseja remover 2 pacotes. Esses são pacotes recomendados que foram instalados automaticamente quando o chromium-browser foi instalado (e eles também precisam ser exatamente a mesma versão do pacote chromium-browser), e embora eles não sejam exigidos pelo chromium-browser, você ainda pode precisar deles. Portanto, é uma boa ideia fazer o downgrade deles também, para que não sejam removidos.

Nesse caso, o comando apt downgrade torna-se:

Comandos para usar no terminal

sudo apt install chromium-browser=71.0.3578.98-0ubuntu0.18.10.1 chromium-codecs-ffmpeg-extra=71.0.3578.98-0ubuntu0.18.10.1 chromium-browser-l10n=71.0.3578.98-0ubuntu0.18.10.1 chromium-chromedriver=71.0.3578.98-0ubuntu0.18.10.1

Vejamos o que acontece quando o usamos:

$ sudo apt install chromium-browser=71.0.3578.98-0ubuntu0.18.10.1 chromium-codecs-ffmpeg-extra=71.0.3578.98-0ubuntu0.18.10.1 chromium-browser-l10n=71.0.3578.98-0ubuntu0.18.10.1 chromium-chromedriver=71.0.3578.98-0ubuntu0.18.10.1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  webaccounts-chromium-extension unity-chromium-extension adobe-flashplugin
The following packages will be DOWNGRADED:
  chromium-browser chromium-browser-l10n chromium-chromedriver chromium-codecs-ffmpeg-extra
0 upgraded, 0 newly installed, 4 downgraded, 0 to remove and 51 not upgraded.
Need to get 64.9 MB of archives.
After this operation, 35.8 MB disk space will be freed.
Do you want to continue? [Y/n]

Como você pode ver, o downgrade pode ser executado e nenhum pacote está prestes a ser removido. Já que tudo parece bom agora, podemos prosseguir com o downgrade.

Esse post foi traduzido do site LinuxUprising.com pela rtland.team.

Linux Uprising Blog
Propaganda
Propaganda