如何获取所有待处理安全更新的列表?

use*_*031 22 updates apt

我需要在 Ubuntu 14.04 系统上列出(不计算或安装)所有待处理的安全更新。我已经阅读了文章如何使用 apt-get 创建仅包含安全更新的列表?它的公认答案 ( apt-show-versions | grep upgradeable | grep security) 确实给了我一个清单。

但是,该命令列出了 62 个待处理的安全更新。 /usr/lib/update-notifier/apt-check告诉我我有 75 个待处理的安全更新,但似乎没有办法列出它们。我怎样才能调和这两个数字?这两个命令之一是否在做我想要的以外的事情?

fli*_*fly 10

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

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

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

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

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

  • @myrdd只要输出的格式在新版本中不改变即可。第一个更好,因为它不依赖于输出格式。 (2认同)

小智 7

必须有一种方法来请求现在有多少个软件包可更新以及有多少个安全更新,但是如果您满足于每天询问一次,您可以简单地读取文件/var/lib/update-notifier/updates-available,该文件似乎每天由脚本/etc/cron.daily/update-notifier-common更新,该脚本属于update-notifier-common包

\n\n

例子:

\n\n
$ sudo cat /var/lib/update-notifier/updates-available\n\n355 packages can be updated.\n1 update is a security update.\n
Run Code Online (Sandbox Code Playgroud)\n\n

测试于:

\n\n
    \n
  • Ubuntu 14.04 LTS
  • \n
  • Ubuntu 16.04 LTS
  • \n
  • Ubuntu 18.04 LTS
  • \n
\n\n

问候,

\n\n

/\xc3\x81ngel

\n


小智 6

+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|                            Command                            |                                                                               Purpose                                                                               |
+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| apt list --upgradable                                         | List all updates available                                                                                                                                          |
| apt list --upgradable | grep "\-security"                     | List all updates that are security.                                                                                                                                 |
| apt list --upgradable 2>/dev/null | grep "\-security" | wc -l | Count number of security updates available. and redirects the stderr like "WARNING: apt does not have a stable CLI interface. Use with caution in scripts." to null |
+---------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

  • 这仅列出了为“upgrade”提供的软件包,而不列出了为“dist-upgrade”提供的软件包。(参见 https://askubuntu.com/questions/441921/why-does-usr-lib-update-notifier-apt-check-not-agree-with-apt-get-upgrade) `unattended-upgrades` 仅升级前者(默认情况下),而 apt-check 则计算后者。 (3认同)

小智 5

sudo apt-get -s --no-download dist-upgrade -V | grep "^Inst.*security.*$" | cut -d " " -f 2
Run Code Online (Sandbox Code Playgroud)

在这个问题的一些帮助下

  • 或者如果你想避免`sudo`:`apt-get -s dist-upgrade -V | awk '/^Inst.*security/ {print $2}'` (3认同)