Иногда, когда я обновляю систему через do-release-upgrade
, сбои процесса обновления и сценарий говорят мне заканчивать процесс вручную через dpkg --configure -a
. Это - не серьезная проблема - после ручного решения проблемы зависимостей, и заканчивающееся обновление обрабатывают все работы хорошо.
Но do-release-upgrade
сценарий имеет процесс очистки после окончания обновления:
Remove obsolete packages?
XXX packages are going to be removed.
Continue [yN] Details [d]y
который удаляет некоторые устаревшие пакеты из старой версии системы.
Кажется, что этот процесс не выполняется, когда автоматическое обновление перестало работать, и я заканчиваю обновление вручную, таким образом, устаревшие пакеты от старой версии остаются установленными в системе.
Как я могу работать, "Удаляют устаревшие пакеты" процесс вручную после окончания обновления вручную?
Проверьте это:
Откройте терминал (нажмите Ctrl + Alt + T ).
Запустите это:
sudo -i
apt-get update
apt-get autoremove
apt-get clean
UNUSCONF=$(dpkg -l|grep "^rc" | awk '{print $2}')
apt-get remove --purge $UNUSCONF
NEWKERNEL=$(uname -r|sed 's/-*[a-z]//g'|sed 's/-386//g')
ADDKERNEL="linux-(image|headers|ubuntu-modules|restricted-modules)"
METAKERNEL="linux-(image|headers|restricted-modules)-(generic|i386|server|common|rt|xen)"
UNUSKERNELS=$(dpkg -l | awk '{print $2}' | grep -E $ADDKERNEL | grep -vE $METAKERNEL | grep -v $NEWKERNEL)
apt-get remove --purge $UNUSKERNELS
update-grub
Я считаю, что «Удалить устаревшие пакеты» на самом деле просто запускает sudo apt-get autoremove
. Попробуйте, посмотрите, поможет ли.
Я обнаружил, что этот ответ на несвязанный вопрос может предоставить утилиту и команду, которая, кажется, удаляет больше неиспользуемого материала:
sudo deborphan | xargs sudo apt-get -y remove --purge
В журналах обновления в / var / log / dist-upgrade
есть строка в main.log
:
main.log:2020-12-23 21:01:53,154 DEBUG Obsolete: linux-headers-5.4.0-56-generic linux-hwe-5.4-headers-5.4.0-56 linux-image-5.4.0-56-generic linux-modules-5.4.0-56-generic linux-modules-extra-5.4.0-56-generic msgpack-tools slirp4netns
I думаю, их удаление в сочетании с apt-get autoremove
должно сделать то же самое, что и обновление, если бы оно было выполнено до конца.