Faça o downgrade de vários pacotes

10

Talvez você tenha instalado pacotes de um PPA ou de uma fonte externa (por exemplo, baixou um .deb para um pacote disponível nos repositórios do Ubuntu).
Então você decide descartar essas versões atualizadas em favor dos repositórios oficiais.
O primeiro passo é remover as entradas do sources.list.

Existe uma maneira de fazer o downgrade de tudo para a versão mais alta disponível? Eu sei que você pode instalar versões específicas com

apt-get install [pacote] = [versão]
Mas você pode fazer o downgrade de tudo?

Manuel
fonte
Você quer dizer um comando para remover os aplicativos PPA atuais e depois instalar os do repositório oficial? Eu faria algo como sudo apt-get -y remove package1 package2 package3 && sudo apt-get install package1 package2 package3- não acredito que exista um único comando, como sudo apt-get repocleanpor exemplo, para fazê-lo.
kingmilo
Então eu tenho que obter todos os pacotes que instalei no repositório? Não há atualização para a versão mais alta disponível (isso é algo que você pode fazer com o openSUSEs zypper).
Manuel
Se você remover o repositório e o pacote estiver disponível no repositório oficial e esse pacote for uma versão superior ao pacote disponível no repositório que você adicionou, esse pacote será atualizado para a versão disponível no repositório oficial.
30813 kingmilo
1
Sim, mas e se não? A atualização não é problema, mas o downgrade.
Manuel

Respostas:

15

Um pouco atrasado para a festa, mas encontrei essa pergunta ao procurar uma resposta e agora tenho minha própria resposta para compartilhar.

Eu acredito que você pode fazer isso através do mundo misterioso de apt_preferences.

Tente criar um arquivo chamado / tmp / a_p (ou o que seja) assim ...

Package: *
Pin: release a=*-backports
Pin-Priority: 100

Package: *
Pin: release n=*
Pin-Priority: 1001

Então corra:

sudo apt-get -o Dir::Etc::Preferences=/tmp/a_p dist-upgrade

A segunda seção do arquivo basicamente faz o que o OP solicitou, na medida em que supera a prioridade de todos os pacotes em qualquer repositório ativo para fazê-los instalar, mesmo que isso signifique um downgrade.

A primeira seção impede que a segunda seção acione a instalação de todos os backports. Você pode ou não se interessar ou querer isso. Eu sugiro mexer para ver o que funciona. Você pode usar apt-cache -o Dir::Etc::Preferences=/tmp/a_p policy somepkgpara ver qual o efeito do arquivo a_p em pacotes específicos.

TIM

user156743
fonte
6

Ok, e se encontrado, é o script ppa-purge

Se você adicionou um PPA e um software atualizado, pode remover o repositório e, nesta etapa, fazer o downgrade de todos os pacotes que foram atualizados com

ppa-purge [nome do repositório]

Isso é útil para outra pessoa?

Mas ainda está aberto se você puder instalar a versão mais alta disponível, mesmo que a versão instalada seja mais alta ...

Manuel
fonte