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.

Zanna
fonte

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 )
Mahesh
fonte
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.

danorton
fonte
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.

Apurba
fonte
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.

rɑːdʒɑ
fonte
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

Theeternalflame
fonte
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.

gudvinr
fonte
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