![如何从命令行仅检查安全更新?](https://linux22.com/image/961562/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E4%BB%85%E6%A3%80%E6%9F%A5%E5%AE%89%E5%85%A8%E6%9B%B4%E6%96%B0%EF%BC%9F.png)
有没有办法快速检查是否有可用的安全更新从命令行?
在我的 12.04 系统上运行apt-get update
获取20MB 数据每次运行它时,我都会查看可用的软件包,一路上会遇到许多存储库。然后我可以使用上述任何方法这里真正执行更新。
我的问题是关于检测安全更新的可用性(即不使用 apt-get/aptitude/etc 执行实际升级):是否有可以从命令行执行的快速检查,该检查对“是否有可用的安全更新?”问题提供是或否的答案。我想在运行冗长的apt-get update
实际升级之前运行该检查。
我想我不需要每天下载 20MB 的数据来知道答案。
答案1
我的问题只是关于检测安全更新的可用性
是的,这是可行的,但需要注意的是,下次运行时正常情况apt-get update
下会进行完全刷新(20 MB 意味着它无论如何都会这样做)。
sudo sh -c 'grep precise-security /etc/apt/sources.list > /etc/apt/secsrc.list
然后,如果你运行以下命令,你将看到是否有可用的安全更新(示例输出):
sudo sh -c'apt-get -o Dir::Etc::sourcelist="secsrc.list" \ -o Dir::Etc::sourceparts="-" 更新 && \ apt-get --assume-no升级'
这告诉
apt-get
暂时使用特殊的仅限安全源列表,然后运行upgrade
,自动回答否。如果有,请运行正确的程序
apt-get update
(将进行完全刷新),然后升级。如果你不想解析 apt-get 输出,你可以将上述内容制作成一个 bash 脚本,并在最后进行简单的 grep/退出代码检查:)
答案2
这可能不是问题所问的确切内容,但如果你已经运行apt update
,则可以使用以下命令查看有哪些安全更新可用:
sudo apt list --upgradable | grep -e "-security"
它会给你类似这样的结果:
libssl1.0.0/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]
openssl/xenial-updates,xenial-security 1.0.2g-1ubuntu4.9 i386 [upgradable from: 1.0.2g-1ubuntu4.8]