你如何使用 apt-get 只在 ubuntu 上安装关键的安全更新?

rea*_*nly 59 ubuntu apt

你如何使用 apt-get 只在 ubuntu 上安装关键的安全更新?

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

小智 41

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

想出了这个解决方案:

sudo cp /etc/apt/sources.list /etc/apt/security.sources.list
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list
Run Code Online (Sandbox Code Playgroud)

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

  • 非常好!你也可以`grep security /etc/apt/sources.list | sudo tee /etc/apt/security.sources.list` 以避免手动编辑。 (6认同)

gra*_*ace 25

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


fli*_*fly 19

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

这两个命令会吐出列表。管道到 wc -l 以查看后面有多少。;-)

grep security /etc/apt/sources.list > /tmp/security.list
sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -s
Run Code Online (Sandbox Code Playgroud)

对于较旧的发行版仍然有效,或者如果您关闭了更新存储库,但安全性:

sudo apt-get upgrade -s| grep ^Inst |grep Security 
Run Code Online (Sandbox Code Playgroud)


小智 2

我不知道它是否会起作用,但是 apt 的源代码位于 /etc/apt/sources.list 和/或 /etc/sources.list.d/ 中

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

apt 的安全线应该是这样的:

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

保留这些行并评论所有其他行。