我很好奇什么会触发 pacman 中的事务后钩子,以及是否可以查看为特定包调用哪些钩子以及使用哪些参数。
例如,我刚刚安装了 Wine 的自定义版本,并且存在一些与事务后挂钩之一相关的错误:
:: Running post-transaction hooks...
(1/2) Registering binary formats...
/usr/lib/rc/sh/binfmt.sh: line 33: /proc/sys/fs/binfmt_misc/: Is a directory
/usr/lib/rc/sh/binfmt.sh: line 35: echo: write error: Invalid argument
binfmt: invalid entry on line 3 of `/usr/lib/binfmt.d/wine.conf'
error: command failed to execute correctly
(2/2) Updating the desktop file MIME type cache...
我在哪里可以准确找到该二进制格式挂钩所调用的内容?钩子调用是否在 PKGBUILD 文件中指定?
答案1
您将在 中找到大部分答案man 5 alpm-hooks
。文档中似乎有一些脱节,并且此手册页仅在pacman
和的手册页的“另请参阅”部分中提到libalpm(3)
(Arch Linux 包管理(ALPM)库,pacman 是其前端) 。
钩子是由包本身安装的文本文件指定的,该文件.hook
位于 , 使用的默认目录中,或者在 中列出的其他目录中。libalpm
/usr/share/libalpm/hooks
pacman.conf
TRIGGERS
其部分包含与当前事务匹配的条件的所有挂钩pacman
都会运行。
Exec
每个钩子部分中的指令指定ACTIONS
要运行的命令,包括其参数。
另请参阅相关段落在 Arch 维基上。