我希望能够列出自上次运行脚本/命令以来已升级的软件包中的所有新闻。然后,这可能会在 cron 作业中每周运行一次,以提供任何升级信息的摘要。
该apt-listchanges
命令看起来像我想要的,但我似乎无法让它的行为与我描述的完全一样。我尝试运行的命令是:
apt-listchanges -f text -a --which=news --save_seen=/var/lib/apt/listchanges.db /var/cache/apt/archives/*.deb
似乎希望列出实际的包,而不是默认检查所有包,所以我把缓存中的所有东西都给了它,我不确定这是否是最好的方法。
但是,更大的问题是,默认情况下它只显示当前安装版本之间的变化,因此不显示任何变化。因此,我添加了 -a 选项来显示所有更改,然后添加了 save_seen 选项,该选项声称它将停止显示之前显示的更改。但是,每次我运行命令时,它每次都会显示所有更改。
有没有办法调整命令按预期工作?或者,也许是其他一些解决方案,例如使用 apt 挂钩将每个升级包的 NEWS 附加到文件中,然后我的脚本可以简单地读取文件并在每次运行时删除内容。
我可以想到两种不需要
apt-listchanges
过多调整的方法。两者都依赖于;中的默认apt-listchanges
钩子。apt
检查/etc/apt/apt.conf.d/20listchanges
您的系统上是否存在。这很好用,因为apt-listchanges
它与apt
即将升级的软件包列表一起运行,因此可以将当前安装的版本与这些进行比较。(apt-listchanges
' 设计使得事后难以运行;您可以使用该--since
选项,但您需要跟踪适当的值。)第一种方法是配置
apt-listchanges
发送包含任何更改的电子邮件。这需要在系统上进行有效的邮件设置,这对您来说可能不方便;但我觉得它很方便。在 的[apt]
部分中/etc/apt/listchanges.conf
,设置frontend=mail
和email_address
酌情;thenapt-listchanges
将在每次运行时apt
运行,并发送包含新闻项目(和/或更改日志,具体取决于which
设置)的电子邮件。第二个,我实际上没有尝试过,是配置
apt-listchanges
为简单地将新闻条目和/或更改日志转储到其标准输出,并将其重定向到一个日志文件,然后您可以在方便时阅读该文件。在[apt]
部分中/etc/apt/listchanges.conf
,设置frontend=text
;在 中/etc/apt/apt.conf.d/20listchanges
,将附加重定向添加到您的目标文件。