我知道这一点,dpkg并且dpkg-query是了解当前安装在 Debian 系统上的软件包的好工具。除了记录到文件中的信息之外,/var/log/dpkg.log.*还有其他地方可以让我知道何时发生更改(即安装包的时间和日期)?
假设这里的这个问题是说 Debian 的软件包系统不关心存储有关 deb 文件来源的信息(以及它应该如何存储?)我开始认为这/var/log/dpkg.log.*是有关何时发生dpkg相关事件的信息的唯一地方完全存储。
也许有人可以证实这一点。或者告诉我是否存储了有关软件包安装的时间信息(确实会很棒!)在哪里可以找到它们(哪个文件?)。
/var/log/dpkg.log是 dpkg 本身留下的唯一日志文件。它记录安装、卸载、升级了哪些包。它只指示包名称、版本和操作:dpkg 不知道包的来源。它确实指示了每个动作的日期。
如果 dpkg 是由 APT 套件中的工具(apt-get、aptitude、Synaptic 等)调用的,则 APT的操作将被登录/var/log/apt/history.log和/var/log/apt/term.log. 该文件apt/history.log包含与dpkg.log. 该文件apt/term.log包含 dpkg 运行的记录(安装前和安装后以及 -remove 脚本、dpkg 运行、触发器)。
Aptitude 也在 中写入了类似的日志/var/log/aptitude。此日志包含 aptitude 尝试的操作,无论它们是否成功。
您通常还可以通过检查/var/lib/dpkg/info/$package.*. 如果由于某种原因(例如从备份中恢复)稍后修改了这些文件,则它们可能具有更新的 ctime。当前版本可能是从另一个版本升级而来的,此方法不会告诉您有关先前版本的任何信息。
如果您安装并启用了etckeeper,那么每次运行 APT 并且某些内容/etc发生更改时,更改都会提交给版本控制。当 APT 在操作后自动提交时,它会在日志消息中指示所采取的操作(例如安装了哪些包)。
没有工具可以记录包的来源。通常,对于 APT,给定的包总是来自同一个来源,除非来源或其优先级发生了变化。在源或优先级确实发生变化的极少数情况下,没有通用的方法来检索有关过去安装的软件包是从哪里获得的历史信息。
请参阅 中的文件/var/log/apt。文件history.log和至少由和term.log写入。运行时,还会给出命令行。您可能想看看。除此之外,它还记录了操作的时间。apt-getaptitudeapt-gethistory.log
因此,例如,与使用的包安装相对应的日志部分apt-get如下所示:
Start-Date: 2013-09-02 00:27:25
Commandline: apt-get install unrar
Install: unrar:amd64 (4.1.4-1)
End-Date: 2013-09-02 00:27:29
Run Code Online (Sandbox Code Playgroud)
与使用的安装相对应的日志部分aptitude如下所示:
Start-Date: 2013-09-02 16:39:11
Install: hello:amd64 (2.8-2)
End-Date: 2013-09-02 16:39:15
Run Code Online (Sandbox Code Playgroud)
这些示例来自 Debian amd64 wheezy 系统。
| 归档时间: |
|
| 查看次数: |
3819 次 |
| 最近记录: |