您如何使用apt-get在ubuntu上仅安装重要的安全更新?


55

您如何使用apt-get在ubuntu上仅安装重要的安全更新?

我们只想升级出于安全原因需要升级的软件包,而不升级所有其他软件包。


7
有一个伟大的答案,这对askubuntu askubuntu.com/questions/194/...
user9517支持GoFundMonica

也许我说的很明显,但是如果您运行的是稳定的发行版,则获得的唯一更新将是关键更新(主要是安全性,有时会修复软件包中的关键破损)。
2013年

两个重复的 线程(具有不同的解决方案和不同的解释)。
jpaugh

对于Debian,请检查debsecan主页),当然还要unattended-upgrades打包。
巴勃罗A

Answers:


38

每次我只想应用安全更新时(这是第二次),当我厌倦了手动编辑source.list时,我都会仔细阅读apt-get手册页。

想出了这个解决方案:

sudo cp /etc/apt/sources.list /etc/apt/security.sources.list

编辑后者以仅包含安全性存储库,然后:

sudo apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list

Tadaaaa ...可编写脚本的东西。


5
非常好!您也grep security /etc/apt/sources.list | sudo tee /etc/apt/security.sources.list可以避免手动编辑。
jpaugh

Ressu展示了一种通过将普通程序包固定到较低优先级来在适当的首选项中实现此目的的技巧,但这似乎有点不客气。YMMV
jpaugh

25

尝试此处unattended-upgrades列出的或任何其他方法。它可以用来配置自动安全更新(我相信它会在安装过程中被询问时使用)以及其他自动升级。有关更多详细信息,请参见手册页


16

如果您只是想一次快速地执行此操作,而不是创建一个单独的存储库并编写一些自动化等内容的脚本。如果您不应该在审核系统或进行任何其他操作时进行更改,那就太好了。

这两个命令将吐出列表。用管道输送到wc -l看看后面有多少。;-)

grep security /etc/apt/sources.list > /tmp/security.list
sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -s

对于较旧的发行版或已关闭更新存储库仍然有效,但安全性为:

sudo apt-get upgrade -s| grep ^Inst |grep Security 

2

我不知道它是否会工作,但是apt在/etc/apt/sources.list和/或/etc/sources.list.d/中有它的来源。

为什么不编辑文件,并注释不属于安全更新的所有行?

apt的安全线应如下所示:

deb http://security.ubuntu.com/ubuntu ..... ..... ...

保留这些行,并注释所有其他行。


1

我所做的:

apt-get update
apt-get install -y --only-upgrade $( apt-get --just-print upgrade | awk 'tolower($4) ~ /.*security.*/ || tolower($5) ~ /.*security.*/ {print $2}' | sort | uniq )
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.