当前位置: 首页>>技术问答>>正文


如何从命令行查找需要更新的软件包数量?

, , ,

问题描述

我正在使用结构进行一些系统管理自动化,我希望能够监控在给定机器上需要升级的软件包数量。这与我第一次登录计算机时可以看到的信息相同,即此部分:

35 packages can be updated.
22 updates are security updates.

是否有可以运行的命令(最好没有sudo)可以提供这些信息?

我看过apt-python绑定,但它们似乎有很高的学习曲线,它们似乎也有很多改变 – 我想要的东西至少可以在清醒时使用而不需要做不同的事情不同的Ubuntu版本上的东西。

最佳解决方案

要获得该输出,可以使用该命令

sudo /usr/lib/update-notifier/update-motd-updates-available

或者,如果您不想使用sudo

cat /var/lib/update-notifier/updates-available

Explanation

login应用程序显示文件/etc/motd中的输出,该文件是/var/run/motd的符号链接。

最后一个文件由mounted-varrun服务(请参阅/etc/init/mounted-varrun.conf)更新,调用/etc/update-motd.d/中的所有脚本,特别是

/etc/update-motd.d/90-updates-available

然后调用脚本

/usr/lib/update-notifier/update-motd-updates-available

此脚本执行各种操作,最后将输出写入文本文件

/var/lib/update-notifier/updates-available

编辑

关于问题的重启部分,请运行此命令

/usr/lib/update-notifier/update-motd-reboot-required

如果不需要重启,它将不会输出。

次佳解决方案

为什么你不能跑这个?

/usr/lib/update-notifier/apt-check --human-readable

这就是/usr /lib /update-notifier /update-motd-updates可用于收集信息,至少在我正在使用的Ubuntu版本中(12.10)。

第三种解决方案

当我在/usr/lib/update-notifier/apt-check中找到注释时,我还搜索了一个用于在最小的docker容器内进行更新检查的脚本方法:

apt-get -s -o Debug::NoLocking=true upgrade | grep ^Inst

这允许进行脚本式更新检查,而无需安装update-notifier-common软件包

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2919.html,未经允许,请勿转载。