我刚刚又遇到了这个问题“找出几天前我安装了哪些软件包”。我已经阅读了 askubuntu 上的几个问答,总是有不同的方法可以做到这一点:
- 使用历史在里面软件中心
- 使用
dpkg-query -l
(虽然我似乎找不到任何关于安装日期的信息 - 快速浏览
/var/log/dpkg.log
- (别忘了)历史在 Synaptic 包管理器中
我的问题是:我是否正确地假设所收到的信息并不总是相同的。例如,在我看来,历史Software-Center 和 Synaptic Package manager 的解决方案只显示它们“自己”处理的软件包。这意味着它们忽略了所有通过命令行(即通过dkpg
或apt-get
)安装/删除/升级的软件包。
有人能帮我吗?(a) 确认有区别,(b) 或许能指出区别。最有趣的是,还有一个问题,即“安装日期/时间记录”是否只能通过浏览方法获得/var/log/dpkg.log.*
?
答案1
通常情况下,Ubuntu 软件管理器和 Synaptic 会在自己的日志文件中跟踪软件包更改,但这意味着如果你不使用这些程序每时每刻日志将不完整,您在尝试验证这一点时会遇到问题。
我在手册中没有找到dpkg-query
任何线索,它提供了安装日期,但dpkg-query -l
实际上打印的是软件包的一般状态、版本、架构和描述。
那么,谁更值得信任呢?显然,包管理器最后,前端负责dpkg
执行安装、配置和删除操作,并且它的日志在/var/log/dpkg.log*
。现在让我们以编程方式回答您的问题:
我是否正确地假设所收到的信息并不总是相同的?
正如我上面所说,是的。程序不会在每个给定时间运行,也不应该这样,因此它们无法跟踪每个软件包更改。
有人能帮我吗?(a) 确认存在差异,(b) 也许能向我指出差异?
是的,区别如上所述。
最有趣的是,还有一个问题:“安装日期/时间记录”是否只能通过浏览 /var/log/dpkg.log.* 方法获得?
如果您正确设置了时钟并使用了apt-get
,显然 apt-get 和 dpkg 的日志将同时记录相同的内容,时间也相同。如果您apt-get
一直使用,那么您可以读取任一日志并获得相同的信息,这是可以理解的。所以,不,安装日期和时间记录无论您检查什么日志都是可用的(除非日志设置为不打印时间),但 dpkg 的日志总是更完整。