Иногда, когда я do-release-upgrade
обновляю систему через , процесс обновления завершается неудачно, и скрипт говорит мне завершить процесс вручную через dpkg --configure -a
. Это не серьезная проблема - после ручного решения проблемы зависимостей и завершения процесса обновления все работает хорошо.
Но do-release-upgrade
скрипт завершает процесс очистки после завершения обновления:
Remove obsolete packages?
XXX packages are going to be removed.
Continue [yN] Details [d]y
который удаляет некоторые устаревшие пакеты из старой версии системы.
Кажется, что этот процесс не выполняется, когда происходит сбой автоматического обновления, и я заканчиваю обновление вручную, поэтому устаревшие пакеты из старой версии остаются установленными в системе.
Как я могу запустить процесс «Удалить устаревшие пакеты» вручную после завершения обновления вручную?
dpkg -l|grep "^rc"|awk '{print $2}'
это показ пакетов для удаления. Странно, что apt-get или aptitude не хотят видеть его для удаления.sudo dpkg -l|grep "^rc"|awk '{print $2}' | xargs sudo apt-get remove -y --purge
. Внимание, эта команда удаляет пакеты без подтверждения, но полезна для автоматизации систем быстрой очистки.'^rc'
помеченные пакеты даже не были установлены, но обновление не удалось прямо перед поиском устаревших пакетов. Так что этот ответ кажется неполным. Это не удалит все пакеты, которые были быdo-release-upgrade
, в случае успеха.Я считаю, что «Удалить устаревшие пакеты» на самом деле просто запускает
sudo apt-get autoremove
. Попробуйте, посмотрите, поможет ли это.источник
sudo apt-get autoremove
Это удалить только небольшую часть пакетов, которая удаляетdo-release-upgrade
, например,do-release-upgrade
в той же системе удаляет около 150 пакетов, ноapt-get autoremove
- удалить только около 5-10 пакетов.Я считаю, что этот ответ на несвязанный вопрос может предоставить утилиту и команду, которые, кажется, удаляют больше неиспользуемого материала:
sudo deborphan | xargs sudo apt-get -y remove --purge
источник