ACCEPT_KEYWORDS
变量在哪里设置?
这个变量通常通过 Gentoo 的 profile 设置。但是可以在用户的 /etc/portage/make.conf 文件里进行覆盖,以及在 /etc/portage/package.accept_keywords 文件/目录下为每个包覆盖,甚至在命令行中进行(尽管不推荐这样做)。
通过命令行覆盖 ACCEPT_KEYWORDS 变量通常被认为是个坏主意,例如使用 ACCEPT_KEYWORDS=<keyword> emerge -av <packagename> ,因为设置不会被包管理器保存而且可能导致不必要的行为。
稳定与不稳定的 keywords
在绝大多数的 profile 中
ACCEPT_KEYWORDS
变量的默认值即系统架构本身,例如
ACCEPT_KEYWORDS="amd64"
或者
ACCEPT_KEYWORDS="arm"
。在此情况下,包管理器只接受那些
KEYWORDS
变量包含此架构的 ebuild。如果用户希望能够安装那些还未被认为适合生产环境使用的 ebuild,可以在架构前添加
~
前缀,例如:
ACCEPT_KEYWORDS="~amd64"
由于
ACCEPT_KEYWORDS
变量是增量的,在添加测试关键字 (
~amd64
)的时候,不应当指定稳定的关键字(
amd64
)。
如果不是进行系统全局设置,那么可以在 package.accept_keywords 文件或目录中对每个包进行单独设置:
# games
games-fps/doomsday ~amd64
除了 ACCEPT_KEYWORDS 的通常值以外, package.accept_keywords 还支持三个特殊值 [1] :
-
*— 如果包在任何系统架构是稳定的,那么它可见 -
~*— 如果包在任何系统架构是测试的,那么它可见 -
**— 这个包总是可见的 ( KEYWORDS 被完全忽略)
最后一个选项对于版本经常改变的包(比如SVN/Git/Mercurial版本的包)非常有用,因为即时ebuilds没有 KEYWORDS 变量
The behavior of ~ arch and ~* differ: ~ arch includes arch , ~* doesn't include *. To use the most recent version of a package which is marked stable or unstable on any architecture, specify "* ~*".
另请参阅
- KEYWORDS — the KEYWORDS variable informs in which architectures the ebuild is stable or still in testing phase.
- Knowledge Base:Accepting a keyword for a single package
- Knowledge Base:Accepting a keyword for all packages
参考
- ↑ Gentoo Portage, Manual page for Portage . Retrieved on January 30th, 2015.