Czasami, gdy aktualizuję system za pośrednictwem do-release-upgrade
, proces aktualizacji kończy się niepowodzeniem, a skrypt mówi mi, aby zakończyć proces ręcznie za pośrednictwem dpkg --configure -a
. Nie jest to poważny problem - po ręcznym rozwiązaniu problemu zależności i zakończeniu procesu aktualizacji wszystko działa dobrze.
Ale do-release-upgrade
skrypt ma proces czyszczenia po zakończeniu aktualizacji:
Remove obsolete packages?
XXX packages are going to be removed.
Continue [yN] Details [d]y
który usuwa niektóre przestarzałe pakiety ze starej wersji systemu.
Wydaje się, że ten proces nie jest wykonywany, gdy automatyczne uaktualnienie kończy się niepowodzeniem i kończę aktualizację ręcznie, więc przestarzałe pakiety ze starej wersji pozostają zainstalowane w systemie.
Jak mogę ręcznie uruchomić proces „Usuń przestarzałe pakiety” po ręcznym zakończeniu aktualizacji?
dpkg -l|grep "^rc"|awk '{print $2}'
wyświetlanie pakietów do usunięcia. To dziwne, że apt-get lub aptitude nie chcą tego widzieć do usunięcia.sudo dpkg -l|grep "^rc"|awk '{print $2}' | xargs sudo apt-get remove -y --purge
. Uwaga, to polecenie usuwa pakiety bez potwierdzenia, ale jest przydatne do automatyzacji systemów szybkiego czyszczenia.'^rc'
oznaczone pakiety nie zostały nawet zainstalowane, ale aktualizacja nie powiodła się tuż przed wyszukiwaniem przestarzałych pakietów. Ta odpowiedź wydaje się niepełna. To nie usunie wszystkich pakietów, które byłybydo-release-upgrade
, gdyby się udało.Wierzę, że „Usuń przestarzałe pakiety” faktycznie po prostu uruchamia
sudo apt-get autoremove
. Spróbuj, sprawdź, czy to pomoże.źródło
sudo apt-get autoremove
usuwa tylko niewielką część pakietów, która usuwado-release-upgrade
, na przykładdo-release-upgrade
w tym samym systemie usuwa około 150 pakietów, aleapt-get autoremove
- usuwa tylko około 5-10 pakietów.Uważam, że ta odpowiedź na niezwiązane pytanie może dostarczyć narzędzia i polecenia, które wydają się usuwać więcej nieużywanych rzeczy:
sudo deborphan | xargs sudo apt-get -y remove --purge
źródło