如何在Ubuntu上通过do-release-upgrade升级失败后删除过时的软件包?

有时,当我通过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/-*[az]//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 。 试试吧,看看它是否有帮助。

我发现这个无关问题的答案可能会提供一个实用程序和命令,似乎可以删除更多未使用的东西:

  1. 安装“deborphan”软件​​包。
  2. sudo deborphan | xargs sudo apt-get -y remove --purge