移除 Ubuntu 下全部配置残留的软件包

后知后觉 暂无评论

当 Ubuntu 大版本升级时会有大量的包废弃或者大版本更新,此种操作会导致出现大量配置残留的包,仅剩下配置文件,而缺失可执行文件。

将系统升级后,很多包有跨版本升级(特别是内核),还有部分废弃的包,因此会出现很多配置文件残留的包。

# dpkg -l | grep "^rc"
rc  linux-image-5.0.0-13-generic         5.0.0-13.14                       amd64        Signed kernel image generic
rc  linux-image-5.0.0-38-generic         5.0.0-38.41                       amd64        Signed kernel image generic
rc  linux-image-5.3.0-46-generic         5.3.0-46.38                       amd64        Signed kernel image generic
rc  linux-modules-5.0.0-38-generic       5.0.0-38.41                       amd64        Linux kernel extra modules for version 5.0.0 on 64 bit x86 SMP
rc  linux-modules-5.3.0-46-generic       5.3.0-46.38                       amd64        Linux kernel extra modules for version 5.3.0 on 64 bit x86 SMP
rc  linux-modules-extra-5.0.0-13-generic 5.0.0-13.14                       amd64        Linux kernel extra modules for version 5.0.0 on 64 bit x86 SMP
rc  linux-modules-extra-5.0.0-38-generic 5.0.0-38.41                       amd64        Linux kernel extra modules for version 5.0.0 on 64 bit x86 SMP
rc  linux-modules-extra-5.3.0-46-generic 5.3.0-46.38                       amd64        Linux kernel extra modules for version 5.3.0 on 64 bit x86 SMP
rc  ntp                                  1:4.2.8p12+dfsg-3ubuntu2          amd64        Network Time Protocol daemon and utility programs

移除全部破损的

# apt remove --purge $(dpkg -l | grep "^iU" | awk '{print $2}')

移除全部残留的

# apt remove --purge $(dpkg -l | grep "^rc" | awk '{print $2}')

使用 dpkg 命令时可以看到系统目前存在的全部包及其状态,例如 rc 等都是两个字母的缩写。

这前后的两个字母的含义分别是:

第一位 -> 预期状态

第二位 -> 当前状态

第三位 -> 错误状态(默认不显示,以空格取代)

以上的内容取自 man 手册,查看请使用

$ man dpkg-query

附上 dpkg -l 部分说明

              The first three columns of the output show the  desired  action,
              the package status, and errors, in that order.

              Desired action:
                u = Unknown
                i = Install
                h = Hold
                r = Remove
                p = Purge

              Package status:
                n = Not-installed
                c = Config-files
                H = Half-installed
                U = Unpacked
                F = Half-configured
                W = Triggers-awaiting
                t = Triggers-pending
                i = Installed

              Error flags:
                <empty> = (none)
                R = Reinst-required

              An  uppercase  status  or  error letter indicates the package is
              likely to cause severe problems. Please  refer  to  dpkg(1)  for
              information about the above states and flags.

附录

参考链接

如果遇到问题或者对文章内容存疑,请在下方留言,博主看到后将及时回复,谢谢!
回复
回答30+38=