如何从命令行查找需要更新的软件包数量?
我正在使用结构进行一些系统管理自动化,我希望能够监控需要在给定机器上升级的软件包数量。 这与我第一次登录计算机时可以看到的信息相同,即此部分:
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
说明
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-available收集信息的方式,至少在我正在使用的Ubuntu版本中(12.10)。
当我在/usr/lib/update-notifier/apt-check
找到注释时,我还搜索了一个用于在最小的docker容器内进行更新检查的脚本方法:
apt-get -s -o Debug::NoLocking=true upgrade | grep ^Inst
这允许进行脚本式更新检查,而无需安装update-notifier-common
软件包
那么你可以使用
sudo apt-get update
它不会给你列表……或者你可以使用system->administration->update manager
但它是图形的:P