下列的这个答案我设置了一个简单的文件/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_PHASE
var 来设置。
为了给你的钩子一些结构,你可以尝试一下你的运气bashrc-mv。