Como fazer o downgrade de um pacote via apt-get?


309

Como posso fazer o downgrade de um pacote para uma versão mais antiga apt-get?

Outras ferramentas também são aceitáveis, mas apt-getsão preferidas.

Respostas:


307

Se você tiver o número da versão ou o release de destino, apt-getsuporta a escolha de uma versão ou release de destino específico. Mais detalhes podem ser encontrados na página de manual do apt-get . Também pode ser acessado a partir do terminal, digitandoman apt-get

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

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

é o comando a ser executado. Isso pode ser usado para baixar um pacote para uma versão específica.

Foi útil ressaltar nos comentários que

  • apt-cache showpkg <package-name>lista todas as versões disponíveis. (h / t Sparhawk )
  • apt-mark hold <package-name> "retém" o pacote na versão atual, impedindo atualizações automáticas. (h / t Luís de Sousa )

58
Além disso, use apt-cache showpkg <package-name>para listar as versões disponíveis.
— Sparhawk #

16
E depois, você também pode querer executar: apt-mark hold <package-name>para evitar atualizações automáticas.
— Luís de Sousa

4
Eu descobri que aptituderebaixei as dependências melhor que apt-get.
— Krispy #

5
apt-cache policy <package-name>mostra apenas as versões instaladas e disponíveis
— Michael Lawton

18
E se showpkgnão mostrar a versão em que você está interessado?
— demongolem

104

USAR

apt-get install «pkg»=«version»

OU

sudo aptitude install «pkg»=«version»

Onde «pkg» é o nome do pacote e «version» é o número da versão.


3
Quando eu digito apt-get install pkg=versiono apt-get ofertas remoção de quase metade de todos os pacotes instalados que, naturalmente, não o que eu quero fazer
— DFR

Como apontado na resposta (caso contrário idêntica) com mais votos, este parece ser um dos casos-chave em aptitudeque um trabalho muito melhor do que apt-get. No meu caso, apt-getrecusou categoricamente a solicitação de downgrade, considerando aptitudeque havia outros pacotes que dependiam da versão mais recente (e, portanto, precisavam fazer o downgrade ao mesmo tempo).
— Sxc731 12/0418

28

Se você atualizou o software usando o ppa, pode fazer o downgrade usando ppa-purge. Primeiro você precisa instalar ppa-purgeusando este código:

sudo apt-get install ppa-purge

Em seguida, você pode remover o ppa usando o comando

sudo ppa-purge ppa: nome do usuário / ppa

isso fará o downgrade automático do software para sua versão original, fornecida com o Ubuntu.


1
Essa solução é incomparável caso o pacote tenha dependências que também precisam ser desclassificadas. Obrigado!
— e

1
Sim, esta é a solução que melhor funcionou para desclassificar o desktop KDE / Plasma do kubuntu-ppa / backports - uma coisa que notei é que o arquivo .list do PPA não deve ter o deb comentado, para que o ppa-purge possa fazer referência a todos os arquivos que precisam ser removidos para a purga. Levei um minuto para descobrir por que não estava funcionando no começo. Espero que ajude outras pessoas!
— AveryFreeman

10

Para fazer o downgrade, você deve executar um comando como

 sudo apt-get install pkg_name=version

no seu terminal.

No lugar de versioncolocar a versão anterior para a qual você deseja fazer o downgrade.


Não funciona pelo menos para o linux-generic, que depende de pacotes que também devem ser rebaixados. Recebo paste.ubuntu.com/p/NWSmf2ZwTy
— mymedia 8/01

9

Na minha opinião, você deve primeiro desinstalar ou limpar o pacote, como:

sudo apt-get remove <package>

ou

sudo apt-get purge <package>

Em seguida, você pode baixar a versão que deseja instalar e mantê-la em uma pasta, como abc.debem Downloads. Abra o terminal, vá para a pasta usando o cdcomando e instale a versão anterior usando dpkg:

sudo dpkg -i abc.deb

Ou então, existe um pequeno utilitário chamado ppa-purgese você quiser fazer o downgrade de pacotes atualizados via PPAs.

Veja este tópico: http://www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html


3
a remoção de um pacote pode remover muitos dependentes, resultando em um sistema inutilizável. O ppapurge parece interessante.
— digite

12
Você pode explicar por que acredita que devemos primeiro desinstalar os pacotes (como uma etapa separada) antes de instalar versões mais antigas deles?
— Eliah Kagan 04/10/12


1
@temoto esse link é para desclassificar versões unstable-> testing-> stablepara não desclassificar pacotes individuais.
— Braiam

0

Esta pergunta é antiga, mas o Google me levou até aqui e não encontrei uma solução simples que não exija a passagem manual da versão ao fazer o downgrade de vários pacotes para versões mais antigas.

Então, talvez alguém que também precise ache útil a minha solução também.

Existe uma ferramenta chamada apt-show-versionsque mostra as versões instaladas.

Você pode facilmente fazer o downgrade de todos os pacotes necessários ajustando o regex, mas aqui está:

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

Em vez de jessievocê pode usar buster/ xenial/ etc dependendo de suas necessidades.


Ou automaticamente downgrade para up-to-date instalado lançamento: sudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}'). Eu prefiro usar -Fpara grepaqui.
— jarno 15/09

Você deve executar sudo apt-show-versions -iprimeiro, se o cache do pacote estiver desatualizado.
— jarno 15/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.