我想查找我最近的更新/升级、软件包清除的历史记录,发现除了 aptitude 和丑陋的 dpkg.log 之外,似乎没有其他东西可以做同样的事情。看Debian 常见问题解答第 9.4 节。有谁知道为什么这样一个可以保存所有过去完成的包管理任务的漂亮日志的工具不存在。上面的链接中共享了一些解决方法,但没有合适的工具。
我抬头查看了/var/log/aptitude
各种经过压缩的日志,以及各种 dpkg 日志,但它们都不是针对最终用户的。
[/var/log] - [10058]
[$] ls -lh aptitu*
-rw-r--r-- 1 root root 117K May 23 15:49 aptitude
-rw-r--r-- 1 root root 24K May 1 00:26 aptitude.1.gz
-rw-r--r-- 1 root root 35K Apr 1 02:07 aptitude.2.gz
-rw-r--r-- 1 root root 26K Feb 28 03:13 aptitude.3.gz
-rw-r--r-- 1 root root 29K Jan 30 04:29 aptitude.4.gz
-rw-r--r-- 1 root root 27K Dec 30 15:28 aptitude.5.gz
-rw-r--r-- 1 root root 32K Dec 1 04:39 aptitude.6.gz
现在可以看到,日志已经持续了近 6 个月,并且 aptitude 做得非常出色,保留了我所有的升级、降级、软件包清除的尝试,但它只记录了“尝试”。 Dpkg 的记录要好得多,但看起来比 aptitude 日志差得多。
如果有人可以分享更多见解,我会很高兴。应该有一些基于 gtk/tk/GUI 的工具,也许是突触/软件中心或用户选择的任何工具的附加组件。
一种借口或可能的解释可能是开发人员重视隐私,但你有其他所有内容的日志,而不仅仅是这些,所以这对我来说没有多大意义。
另一部分只能是,Debian 或上游没有也不关心此类日志,并期望他们的用户保留历史记录或依赖 aptitude 之类的工具,这也没有多大作用,因为 -
aptitude show aptitude | grep Priority
Priority: optional
所以会有用户不会使用 aptitude。
是否有任何 FOSS 操作系统(不限于 GNU/Linux)可以解决上述问题?
答案1
apt
本身保留更好的日志文件/var/log/apt/history.log
(和旋转变体);这些跟踪每组apt
操作的开始和结束日期和时间(包括由 启动的操作aptitude
)、请求用户(使用 调用时sudo
)以及操作:安装的包、升级的包、删除的包、清除的包...
这是一个例子:
Start-Date: 2016-05-09 23:29:03
Requested-By: steve (1000)
Install: libnspr4-dev:amd64 (2:4.12-2, automatic), liboauth-dev:amd64 (1.0.1-1), libcurl4-gnutls-dev:amd64 (7.47.0-1, automatic), libnss3-dev:amd64 (2:3.23-2, automatic)
End-Date: 2016-05-09 23:29:10
这表明我请求安装,它会自动liboauth-dev
引入libnspr4-dev
, 。libcurl4-gnutls-dev
libnss3-dev
您还可以找到哪些日志操作/var/log/apt/term.log
的终端输出。apt
这些文件不跟踪dpkg
操作,因此要获得完整的情况 -IE,包括直接使用完成的操作dpkg
- 您仍然需要查看/var/log/dpkg.log
.如果您dpkg
尽可能限制直接使用,那么apt
历史记录将很好地了解......