![如何从命令行快速获取软件包最近更新的原因?](https://linux22.com/image/879558/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%BF%AB%E9%80%9F%E8%8E%B7%E5%8F%96%E8%BD%AF%E4%BB%B6%E5%8C%85%E6%9C%80%E8%BF%91%E6%9B%B4%E6%96%B0%E7%9A%84%E5%8E%9F%E5%9B%A0%EF%BC%9F.png)
是否有一个命令行命令可以让我快速确定软件包更新的原因?理想情况下,该命令会转储一组指向所有相关信息的 URL。
例如(这是一个很长的例子 - 抱歉),今天我的所有系统都更新了这 5 个包:
Reading package lists...
Building dependency tree...
Reading state information...
The following packages will be upgraded:
login openssh-client openssh-server openssh-sftp-server passwd
5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,977 kB of archives.
After this operation, 24.6 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main login amd64 1:4.1.5.1-1ubuntu9.2 [301 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main passwd amd64 1:4.1.5.1-1ubuntu9.2 [759 kB]
Get:3 http://archive.ubuntu.com/ubuntu/ trusty-updates/main openssh-sftp-server amd64 1:6.6p1-2ubuntu2.6 [34.2 kB]
Get:4 http://archive.ubuntu.com/ubuntu/ trusty-updates/main openssh-server amd64 1:6.6p1-2ubuntu2.6 [321 kB]
Get:5 http://archive.ubuntu.com/ubuntu/ trusty-updates/main openssh-client amd64 1:6.6p1-2ubuntu2.6 [562 kB] Preconfiguring packages ...
Fetched 1,977 kB in 3s (506 kB/s)
(Reading database ... 88021 files and directories currently installed.) Preparing to unpack .../login_1%3a4.1.5.1-1ubuntu9.2_amd64.deb ...
Unpacking login (1:4.1.5.1-1ubuntu9.2) over (1:4.1.5.1-1ubuntu9.1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up login (1:4.1.5.1-1ubuntu9.2) ...
(Reading database ... 88021 files and directories currently installed.) Preparing to unpack .../passwd_1%3a4.1.5.1-1ubuntu9.2_amd64.deb ...
Unpacking passwd (1:4.1.5.1-1ubuntu9.2) over (1:4.1.5.1-1ubuntu9.1) ...
...
我在 Ubuntu 安全通知 (USN) 页面上没有看到任何明显相关的内容,而这是我通常访问的位置。这种性质的更新(登录、密码和 OpenSSH)往往与安全有关,但从表面上看,这里的情况似乎并非如此。
apt-cache show login
显示来源'http://pkg-shadow.alioth.debian.org/',表示父“shadow”包自 2014 年 5 月 9 日起没有更新。好的。不确定为什么没有链接到 Launchpad.net apt-cache show
,但不管怎样。特别查看 Launchpad 上的“shadow”包'https://launchpad.net/ubuntu/+source/shadow' 并查找软件包版本“1:4.1.5.1-1ubuntu9.2”,我看到一个更新日志:
18 hours ago
Changelog
shadow (1:4.1.5.1-1ubuntu9.2) trusty; urgency=medium
* debian/control, debian/rules: re-enable libaudit support. (LP: #1478087)
-- Mathieu Trudel-Lapierre <email address hidden> Fri, 22 Jan 2016 11:21:57 -0500
链接到错误报告 #1478087。其中又讨论了“libaudit”,它用于跟踪登录尝试和软件包更新发生的原因。
简而言之,花了大约半个小时后,我终于弄清楚了更新的原因。正如我最初怀疑的那样,它与安全有关,但花的时间太长了。这让我回到了最初的问题,即:如何迅速地从命令行获取包更新的原因?
答案1
检查软件包更新原因的一个简单方法是检查其更新日志。
apt-get changelog pkgname
例如,这是 openssh-client 的当前更新日志
$ apt-get changelog openssh-client
openssh (1:5.9p1-5ubuntu1.8) precise-security; urgency=medium
* SECURITY UPDATE: information leak and overflow in roaming support
- debian/patches/CVE-2016-077x.patch: completely disable roaming option
in readconf.c.
- CVE-2016-0777
- CVE-2016-0778
-- Marc Deslauriers <[email protected]> Wed, 13 Jan 2016 10:49:17 -0500
openssh (1:5.9p1-5ubuntu1.7) precise-security; urgency=medium
...