使用 package.env 进行阶段钩子

使用 package.env 进行阶段钩子

下列的这个答案我设置了一个简单的文件/etc/portage/env/echo.conf

post_pkg_postinst()
{
    echo "updating $P to $PV"
}

与线

sys-apps/util-linux echo.conf

/etc/portage/package.env

现在,当 emerge 尝试更新时,util-linux出现以下错误:

!!! Problem in 'sys-apps/util-linux' dependencies.
!!! "/etc/portage/env/echo.conf", line 2: Invalid token '(' (not '=') portage.exception                                                                ... done!
"/etc/portage/env/echo.conf", line 2: Invalid token '(' (not '=')

第 2 行是函数声明post_pkg_postinst()

我的portage设置:

sys-apps/portage-2.2.20::gentoo was built with the following:
USE="(ipc) -build -doc -epydoc (-selinux) -xattr" ABI_X86="64" LINGUAS="-ru" PYTHON_TARGETS="python2_7 python3_3 (-pypy) -python3_4"

答案1

env/*文件被解析为Python, 不是巴什,因此出现错误消息。

AFAIK,放置 bash 代码的唯一位置是portage/bashrc,但不要尝试覆盖诸如 等内置函数src_configure。阶段上的挂钩需要通过检查$EBUILD_PHASEvar 来设置。

为了给你的钩子一些结构,你可以尝试一下你的运气bashrc-mv

相关内容