Às vezes, quando eu atualizo um sistema via do-release-upgrade
, o processo de atualização falha e o script diz para concluir o processo manualmente via dpkg --configure -a
. Esse não é um problema sério - depois de resolver manualmente o problema das dependências e o processo de atualização final, tudo funciona bem.
Mas o do-release-upgrade
script tem um processo de limpeza após concluir a atualização:
Remove obsolete packages?
XXX packages are going to be removed.
Continue [yN] Details [d]y
que remove alguns pacotes obsoletos da versão antiga do sistema.
Parece que esse processo não é executado quando a atualização automática falha e eu concluo a atualização manualmente, portanto, os pacotes obsoletos da versão antiga permanecem instalados no sistema.
Como posso executar o processo "Remover pacotes obsoletos" manualmente após concluir a atualização manualmente?
dpkg -l|grep "^rc"|awk '{print $2}'
que mostra os pacotes a serem removidos. É estranho que o apt-get ou o aptitude não desejem vê-lo para remoção.sudo dpkg -l|grep "^rc"|awk '{print $2}' | xargs sudo apt-get remove -y --purge
. Atenção, este comando remove pacotes sem confirmação, mas é útil para automatizar sistemas de limpeza rápida.'^rc'
pacotes marcados nem estavam instalados, mas a atualização falhou pouco antes de procurar por pacotes obsoletos. Portanto, essa resposta parece incompleta. Isso não removerá todos os pacotes existentesdo-release-upgrade
, caso seja bem-sucedido.Eu acredito que o "Remover pacotes obsoletos", na verdade, apenas executa um
sudo apt-get autoremove
. Experimente, veja se ajuda.fonte
sudo apt-get autoremove
é remover apenas uma pequena parte dos pacotes, que removedo-release-upgrade
, por exemplo,do-release-upgrade
no mesmo sistema remove cerca de 150 pacotes, masapt-get autoremove
- remove apenas cerca de 5 a 10 pacotes.Acho que essa resposta de uma pergunta não relacionada pode fornecer um utilitário e comando que parece remover mais coisas não utilizadas:
sudo deborphan | xargs sudo apt-get -y remove --purge
fonte