Como fazer o downgrade de pacotes no Ubuntu?

14

O Update Manager mantém os pacotes na versão mais recente, mas ocasionalmente uma nova versão do pacote pode não funcionar conforme o esperado ou adequadamente. Como fazer o downgrade de um pacote instalado e bloqueá-lo em uma versão específica para impedir que ele seja atualizado? Como posso fazer isso usando a GUI ou o Terminal ?

Radu Rădeanu
fonte

Respostas:

17

Na GUI - usando o Synaptic

A interface simplificada do Ubuntu Software Center não oferece a opção de fazer o downgrade de pacotes. Synaptic, uma interface gráfica de gerenciamento de pacotes mais avançada que o Ubuntu costumava incluir, oferece essa opção. Para fazer o downgrade de um pacote graficamente, primeiro instale o aplicativo Synaptic :

Centro de Software Ubuntu

Depois de fazer isso, abra o Synaptic Package Manager no Dash:

sinatismo

Procure o pacote do qual deseja instalar uma versão mais antiga no Synaptic, selecione-o e use a opção Pacote > Forçar versão :

Forçar versão

Selecione a versão que você deseja instalar e clique em Forçar versão. O Synaptic mostrará apenas as versões disponíveis em seus repositórios:

Selecionar versão

Clique no botão Aplicar para aplicar suas alterações e instalar a versão mais antiga do pacote, assumindo que tudo funcione corretamente.

Aplique

Depois de fazer o downgrade do pacote, selecione-o e use a opção Pacote > Bloquear versão . Se você não fizer isso, o Ubuntu tentará atualizar o pacote instalado na próxima vez que você atualizar seus pacotes instalados:

Versão de bloqueio

No Terminal - usando apt-get

Você pode instalar uma versão específica de um pacote apt-getno Terminal . Primeiro, determine as versões disponíveis que você pode instalar com o seguinte comando (use para nome do pacote o nome do programa que você deseja fazer o downgrade):

apt-cache showpkg [packagename]

Em seguida, execute o comando apt-get install e especifique a versão do pacote que você deseja instalar (use para a versão o número da versão previamente determinado do programa que você deseja fazer o downgrade):

sudo apt-get install [packagename]=[version]

Após a instalação, execute o seguinte comando para manter sua versão instalada, impedindo que o gerenciador de pacotes a atualize automaticamente no futuro:

sudo echo "[packagename] hold" | sudo dpkg --set-selections

Fonte : http://www.howtogeek.com/117929/how-to-downgrade-packages-on-ubuntu/

Radu Rădeanu
fonte
4
se você baseou sua resposta neste site, howtogeek.com/117929/how-to-downgrade-packages-on-ubuntu , forneça o link da fonte. Não acho que a howtogeek se importe, mas eles certamente precisam do link de origem adequado para obter o crédito.
Luis Alvarado
Quando tentei fazer isso, entrei em todos os tipos de problemas com dependências não atendidas. Achei melhor usar o aptitude, pois isso resolvia todas as dependências, por exemplo, sudo aptitude install smbclient = 2: 4.1.6 + dfsg-1ubuntu2. Veja askubuntu.com/questions/770789/how-to-downgrade-smbclient
Lance Holland
3

Outra possibilidade:

Vamos encontrar o pacote arquivado em http://packages.ubuntu.com/ :

Por exemplo, rebaixando o php5:

Procurar:

insira a descrição da imagem aqui

Encontrado um hit exato, vamos olhar para a página do pacote php5:

insira a descrição da imagem aqui

Podemos ver as diferentes versões dos lançamentos do Ubuntu aqui:

insira a descrição da imagem aqui

Vamos mudar para a versão que executou php (5.3) ... 12.04 (preciso) por exemplo:

insira a descrição da imagem aqui

faça o download do tar.gz

insira a descrição da imagem aqui

E então extraia o arquivo tar e instale-o:

cd /path/to/download
tar -xzvf name_of_package
cd name_of_extracted_folder
./configure
make
sudo make install

Possíveis problemas que se pode encontrar ao executar ./configure:

  • Dependências ausentes (necessárias para instalar libxm2-dev): insira a descrição da imagem aqui

Problemas em execução make:

  • erros durante a compilação podem incluir sinalizadores não configurados corretamente ou problemas com o próprio código.
  • Um monte de lixo ao compilar e, em seguida, algum problema no código?
  • No meu caso, eu tive que encontrar os arquivos fonte / tarball atualizados para php ( http://php.net/downloads.php )
  • e tente novamente a extração e faça
jmunsch
fonte