ACCEPT_KEYWORDS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page ACCEPT KEYWORDS and the translation is 94% complete.


ACCEPT_KEYWORDS 变量告诉包管理器哪个 ebuild 的 KEYWORDS 被允许接受。 此变量用于选择 stabletesting 分支作为默认值。

变量在哪里设置?

这个变量通常通过 Gentoo 的 profile 设置。但是可以在用户的 /etc/portage/make.conf 文件里进行覆盖,以及在 /etc/portage/package.accept_keywords 文件/目录下为每个包覆盖,甚至在命令行中进行(尽管不推荐这样做)。

Important
通过命令行覆盖 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变量

Note
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 "* ~*".

另请参阅

参考

  1. Gentoo Portage, Manual page for Portage. Retrieved on January 30th, 2015.