dpkg安装后执行命令?

dpkg安装后执行命令?

我刚刚受到这个项目的启发:

http://www.opendesktop.org/content/show.php?content=145633

好吧,我想做类似的事情,在 dpkg 将新内容放置在 /usr/share/applications 目录中之后,但是我的脚本应该指向哪里,以及要传递的参数是什么?

答案1

如果脚本不接受参数,请在中添加一个文件/etc/apt/apt.conf.d/,例如92local(数字用于强制该目录中脚本的执行顺序),内容如下:

DPkg::Post-Invoke { "/path-to/my-script"; };

并记得使其可执行。

目前找不到有关如何向脚本传递参数或输入的信息。
如果有帮助,当apt在命令行上运行时,您应该在环境变量中找到命令行SUDO_COMMAND

答案2

我找到了一种执行 APT 命令的命令行的方法:

/etc/apt/apt.conf.d/90my_dpkg_post_invoke创建包含内容的文件

DPkg::Post-Invoke { "/usr/local/lib/my_dpkg_post_invoke.sh"; }

/usr/local/lib/my_dpkg_post_invoke.sh创建具有内容的可执行文件

#!/bin/bash
APTPID=$( ps -ho ppid "${PPID}" )
APTPID="${APTPID## }"   # trim leading spaces
APTCMD=$( ps -ho args "${APTPID}" )
APTCMD="${APTCMD## }"   # trim leading spaces
echo "#### APT Command: ${APTCMD}"

现在,您可以通过测试来扩展可执行文件,看看它是否${APTCMD}包含您想要触发操作的字符串。

相关内容