当软件包版本可用时会收到通知

当软件包版本可用时会收到通知

对于很少的软件包,我想知道apt-get update如果有新版本可用,是否已经有一些选项可以做到这一点?

我正在考虑使用apt.confPost-Invoke但尚未采取任何行动。

答案1

您可以使用apt-show-versions(在同名包中);跑步

apt-show-versions -u

将列出系统上安装的所有可用更新版本的软件包(使用 的apt数据库,因此您需要apt-get update按照您提到的方式运行)。

您可以将包列为参数,以apt-show-versions将列表限制为仅包含这些包;因此,运行

apt-show-versions -u ${YOUR_WATCHED_PACKAGES}

之后apt-get update将向您显示您要查找的信息。Post-Invoke正如您提到的,您可以使用它来实现自动化。

答案2

一种简单的方法是运行:

apt-get -s --only-upgrade install package1 package2 ...

您可以将其放入从文件构建包列表的脚本中,运行apt-get update然后运行上面的命令。

答案3

-u所以,我现在最终得到了下面的东西,它似乎有效,如果支持更多的软件包就好了,看着很多可能会变得很慢。

/etc/apt/watch一个文本文件,其中一行包含一个包名称(支持 # 条注释)

/usr/local/bin/apt-watch.sh:

#!/bin/sh

test -f /etc/apt/watch || exit 0

apt-show-versions -u $(grep -v ^# /etc/apt/watch) >/tmp/apt.watch
if [ $(cat /tmp/apt.watch | wc -l) -gt 0 ] ; then
    cat /tmp/apt.watch | mail root -s '[apt watch] upgrades available'
fi

/etc/apt/apt.conf.d/99-apt-watch:

# check upgrades avaiable for watched packages
APT::Update::Post-Invoke { "[ ! -x /usr/local/bin/apt-watch.sh ] || /usr/local/bin/apt-watch.sh || true"; };

相关内容