如何在apt-get升级后运行命令

Ben*_*uer 8 aptitude debian apt

最近我遇到了一个不错的checkrestart工具,它检查正在运行的进程是否使用了最近更新的库的过时版本,并且需要重新启动以使用更新的库加载它们。目前我checkrestart每次使用apt-get upgradeor时都必须手动调用aptitude upgrade

有没有一种方法来调用后自动这样的命令apt-getaptitude升级一些包?如果解决方案也适用于unattended-upgrades.

Ben*_*uer 8

经过更多的搜索,我发现了我已经怀疑的事情:apt它本身提供了一组钩子来在某些事件中调用命令,许多工具都使用它,但似乎几乎没有记录。

checkrestart在软件包升级之后调用工具相当简单。只需将以下代码行放入/etc/apt/apt.conf现有文件之一或其中一个新文件中/etc/apt/apt.conf.d/

DPkg::Post-Invoke-Success { '/usr/sbin/checkrestart';};
Run Code Online (Sandbox Code Playgroud)

这将在checkrestart每次dpkgapt(当然还有依赖于 的任何其他工具apt,例如aptitude)调用并成功完成时调用。

  • 请记住,`apt` 经常在每次运行时多次调用 `dpkg`。 (5认同)
  • [你在哪里找到`DPkg::Post-Invoke-Success`?](http://unix.stackexchange.com/questions/226993/whats-the-difference-between-dpkgpost-invoke-and-dpkgpost-invoke-成功)在源代码中,我只能找到`DPkg::Post-Invoke`、`APT::Update::Post-Invoke`和`APT::Update::Post-Invoke-Success`。 (4认同)