apt-pinning - Forçando downgrades em Debian-likes

Publicado por Luís Fernando C. Cavalheiro em 21/10/2013

[ Hits: 14.843 ]

Blog: https://github.com/lcavalheiro/

 


apt-pinning - Forçando downgrades em Debian-likes



"Doidosfera" do Viva o Linux, aqui começa mais uma dica do Dino, trazendo pra vocês informações da época que Ada Lovelace começou a programar.

Hoje, vim para derrubar um mito: que é impossível fazer downgrades de versão em distros Debian-like.

Muita gente acha que o apt-get não instala versões mais antigas dos pacotes dos repositórios, e ele realmente não instala. Porém, você pode fazer downgrades de versão, o que já ajuda, e muito, a situação.

Por exemplo, você está atualizou seu Precise Pangolin para o Saucy Salamander e se arrependeu, ou se você estava no Debian Jessie mas precisa voltar pro Debian Wheezy.

Aviso: downgrade de versão nunca é um processo 100% garantido, mas, pelo menos, você não vai precisar formatar e reinstalar tudo.

Procedimentos

Vamos aos trabalhos:

1. Preparando um apt-pinning:

O grosso do trabalho envolve apt-pinning, uma técnica que permite usar repositórios de versões diferentes para instalar pacotes diferentes no sistema.

Por exemplo, eu uso apt-pinning para não ter dor de cabeça com o Steam no Debian Wheezy (o Steam é do Jessie) e conseguir instalá-lo com um apt-get install steam no Wheezy.

Eu não vou explicar sobre o apt-pinning nesta dica, quem sabe um dia eu faça um artigo sobre essa "Técnica Milenar", sobre como salvar o sistema em Debian-likes, quando o downgrade de versão se faz necessário.

Para "pinnar" a versão para a qual será feito o downgrade, crie o arquivo /etc/apt/preferences e cole o conteúdo a seguir nele:

Package: *
Pin: release n=precise
Pin-Priority: 1500

No lugar de precise, escreva o codinome da versão de sua distro para a qual o sistema será revertido. Por exemplo, se você quer reverter do Debian Jessie pro Wheezy, troque precise por wheezy.

2. Modificando o sources.list:

Altere o sources.list de seu computador para um compatível com a versão para a qual o downgrade será feito. Voltando ao exemplo, troque o sources.list do Debian Jessie por um do Wheezy.

3. Fazendo o "Vodu" funcionar:

Agora, manda "brasa" no comando:

# for i in clean autoclean update dist-upgrade update upgrade autoremove ; do apt-get "$i" ; done

O sistema vai limpar o cache do sources.list antigo, ler o novo e fazer o downgrade do sistema automaticamente.

Conclusão

Questionamento: "Mas Luís, o apt-get não faz downgrade de versão?"
Resposta: "Claro que faz!"

Se você tivesse lido a manpage apt_preference, saberia que um apt-pinning com Pin-Priority > 1000 força o sistema a instalar o pacote do repositório, mesmo se a versão dele for inferior à atual.

Você não consegue fazer downgrade de um pacote dentro da mesma versão, mas você pode fazer downgrade de versões assim.

* Aviso: O procedimento acima é considerado avançado e, portanto, está sujeito a alguns problemas. Se acontecer algo, não se preocupe, o downgrade terá sido feito e bastará consertar os problemas pontuais que aparecerem. Em todo caso, eu não me responsabilizo por eventuais problemas, caso você faça diferente do proposto na dica.


Isso tudo posto, eu me despeço de todos vocês.

Encerro essa dica em homenagem ao Barão Samedi (não o do James Bond) e desejo a todos um ótimo Samhaim!

Outras dicas deste autor

Subliminal: buscando legendas via terminal

VMVolMan - Dockapp para gerenciar mídias removíveis no Window Maker

usbboot.img - A mídia de instalação mínima do Slackware

Realizando cálculos matemáticos simples usando o vim

openSUSE: upgrade indolor para o Leap 42.1

Leitura recomendada

KDE 5 - Não abre Centro de Controle do KDE [Resolvido]

Habilitando o Flash Player no Midori do elementary OS

Automatizando o Speedy no Slackware

Debian 7 Wheezy - Preparo pós-instalação

Locales no Slackware

  

Comentários
[1] Comentário enviado por removido em 21/10/2013 - 04:41h

Muito bom, útil para iniciantes, médios e avançados. Esse é o cara.

[2] Comentário enviado por lcavalheiro em 21/10/2013 - 08:24h


[1] Comentário enviado por neton-bricio em 21/10/2013 - 04:41h:

Muito bom, útil para iniciantes, médios e avançados. Esse é o cara.


Obrigado pelo elogio, meu querido!

[3] Comentário enviado por removido em 21/10/2013 - 16:31h

Duas coisas...

1. se o problema é o steam mais fácil seria bloquea-lo:

# echo "steam hold"|dpkg --set-selections

2. downgrades de pacotes se fazem com pin_priority maior ou igual a 1000, logo, não sendo necessário o exagero dos 1500 rs

Eu não gosto de usar apt_pinning, porém para alguns cabeçudos até seria interessante o seu uso de modo a não substituirem versões dos pacotes do Debian, por coisas diferentes da release que usam.

[4] Comentário enviado por lcavalheiro em 22/10/2013 - 10:04h


[3] Comentário enviado por edps em 21/10/2013 - 16:31h:

Duas coisas...

1. se o problema é o steam mais fácil seria bloquea-lo:

# echo "steam hold"|dpkg --set-selections

2. downgrades de pacotes se fazem com pin_priority maior ou igual a 1000, logo, não sendo necessário o exagero dos 1500 rs

Eu não gosto de usar apt_pinning, porém para alguns cabeçudos até seria interessante o seu uso de modo a não substituirem versões dos pacotes do Debian, por coisas diferentes da release que usam.


Eu uso o apt-pinning pro Steam porque ele é a única coisa do Jessie que eu uso no meu sistema, pro Iceweasel porque eu uso o do Mozilla Debian Team (e o Aurora está nos Backports), e de resto, meu sistema todo é Wheezy (travado pelo apt-pinning). Então acaba sendo mais prático pinnar do que usar oturas técnicas. O que você sugeriu ia acabar me deixando sem as atualizações das dependências do Steam (que embora os pacotes todos existam no Wheezy, o dito cujo só aceita as versões do Jessie) ;-)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts