如何仅从命令行检查安全更新?


16

有没有一种方法可以从命令行快速检查安全更新的可用性

在我运行的12.04系统上每次我运行时都会apt-get update获取20MB的有关可用软件包的数据,并在此过程中访问了许多存储库。然后,我可以使用此处描述的任何方法来实际执行更新。

我的问题是关于检测安全更新的可用性(即,不使用apt-get / aptitude / etc执行实际升级):是否可以从命令行进行快速检查,以提供是-否的答案,问题“是否有可用的安全更新?”。我想在进行冗长的apt-get update实际升级之前先运行它。

我想我不需要每天下载20MB的数据即可知道答案。



您是说apt-get update获取20MB的包元数据?
杰里米·克尔

@JeremyKerr:是的,如果您在主(存档/us.archive)服务器上,它会执行此操作,因为软件包列表每半小时更新一次...在国际/低速上,澳大利亚有一个或两个长线程关于它对此感到非常失望的用户。
ish 2012年

@izx:有趣,只是apt-get update使用澳大利亚镜子运行了一个测试(我在.au中);下载总大小为1.3MB。
杰里米·克尔

Answers:


11

我的问题只是关于检测安全更新的可用性

是的,这可以警告我们,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 upgrade'
    
  • 这告诉apt-get暂时使用特殊的仅安全性源列表,然后运行upgrade,自动回答否。

  • 如果有,请运行正确的文件apt-get update(将进行完全刷新),然后升级。

  • 如果您不想解析apt-get输出,可以在最后通过简单的grep / exit代码检查使上述bash脚本:)


这正是我在寻找的东西,非常感谢!:)一个简单的问题:我的/etc/apt/secsrc.list文件未引用“合作伙伴”存储库(仅引用了“主要限制”,“ Universe”和“ multiverse'),是否仍会收到该存储库中软件包安全更新的通知?
laramichaels 2012年

@laramichaels,合作伙伴存储库包含15个软件包,这些基本上是包装在.deb中的专有二进制文件。不会针对这些内容发布增量的“安全性”更新,并且我想即使是定期更新也不常见(请考虑使用Adobe Reader)。我只是将实际的存储库(deb http://archive.canonical.com/ubuntu precise partner)添加到secsrc.list给定的合作伙伴更新文件的微小尺寸(5 kb)
ish 2012年

@laramichaels,我还为您先前有关合作伙伴安全更新方面的问题添加了更详细的答案。可接受的答案是错误的IMO,因此请在有空的时候看看,如果您认为更好,请接受我的。
ish 2012年

1
这是做什么用的?-o Dir::Etc::sourceparts="-"
ChocoDeveloper 2012年

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]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.