Reverter uma atualização de pacote para uma versão anterior
Se você tiver o número da versão ou o release de destino, o apt-get suporta a escolha de uma versão específica ou um release de destino.
-
Instalar o aptitude
sudo apt-get install aptitude
-
Mostrar versões antigas do pacote.
aptitude versions <package-name> | less # use less to display only the top of the list of versions
-
Reverter o pacote selecionado para uma versão mais antiga.
sudo apt-get -t=<target release> install <package-name> # target release is old version
-
Desinstale a atualização incorreta do pacote selecionado.
sudo apt-get -t=<target release> remove <package-name> # target release is new version
-
Evite que a versão do pacote revertida seja atualizada automaticamente usando
apt-mark hold
.apt-mark hold
é usado para marcar um pacote como retido, o que impedirá que o pacote seja automaticamente instalado, atualizado ou removido.sudo apt-mark hold <package-name>
Reverter uma atualização do kernel para uma versão anterior
Siga os mesmos passos da seção anterior, exceto pelo fato de que você deve seguir os passos adicionais de teste que ainda tem uma versão do kernel instalada que funciona antes de desinstalar o pacote do kernel quebrado. Infelizmente isso requer a reinicialização do sistema. Sinto muito sobre a reinicialização, porque sei que isso pode ser incômodo e demorado quando você está mantendo vários sistemas.
aptitude versions <package-name>
não mostra todas as versões do kernel atualmente instaladas, no entanto você pode mostrar todas as versões do kernel atualmente instaladas com este comando:
dpkg-query -W -f='${Package}\n' | grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3)
Os resultados deste comando listarão os nomes dos pacotes de todos os pacotes do kernel que não funcionam e que devem ser desinstalados.
Depois de desinstalar os pacotes que pertencem à versão do kernel que não funciona, você receberá esta mensagem:
The link /vmlinuz.old is a damaged link
Removing symbolic link vmlinuz.old
you may need to re-run your boot loader[grub]
Esta mensagem é mostrada porque o vmlinuz.old está ligado a arquivos removidos, então você precisa atualizar o grub executando este comando:
sudo update-grub