在Gentoo中,amd64、~amd64和~amd64-linux有什么区别?

net*_*ope 9 gentoo chrome dependencies

当我运行时equery depgraph www-client/chromium-10.0.648.151,并非所有依赖项都可用。有些节目M[package.mask],而另一些节目[missing keyword]。我的ACCEPT_KEYWORDS~amd64-linux,根据emerge --info。我尝试了不同的ACCEPT_KEYWORDS(作为传递给 的环境变量eqeury),并且都有不同的缺失依赖项。在所有可能的组合中,只有ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'同时满足所有依赖关系。

以下是我的问题:

  1. ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'有效的配置吗?
  2. 我从文档中了解到amd64意味着稳定, ~amd64意味着不稳定。怎么样~amd64-linux
  3. 如果我选择~amd64,则equery不会使用仅适用于 的包 amd64,从而导致缺少依赖项。这是预期的吗?如果是这样,不稳定的测试人员应该至少使用ACCEPT_KEYWORDS='amd64 ~amd64'而不是ACCEPT_KEYWORDS='~amd64'?
  4. 关键字的顺序重要吗?

附加信息:我按照本指南安装了 Gentoo Prefix 。默认情况下, $EPREFIX/etc/make.profile是指向$EPREFIX/usr/portage/profiles/prefix/linux/amd64并包含make.defaults具有ACCEPT_KEYWORDS="-amd64 ~amd64-linux". 既不$EPREFIX/etc/make.conf也不$EPREFIX/etc/make.globalsACCEPT_KEYWORDS配置。根据eselect profile list,没有选择配置文件。

phu*_*ehe 8

1. ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux' 是一个有效的配置吗?

来自 man make.conf:

ACCEPT_KEYWORDS = [空格分隔的关键字列表]

ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'一个有效的组合也是如此。

2. ~amd64-linux 呢?

amd64-linux是一个前缀的东西。我对 Prefix 了解不多,但我可以amd64-linux/usr/portage/profiles/arch.list名为“前缀关键字”的部分中的有效关键字列表中看到。~amd64-linux只是 的测试对应物amd64-linux

3. ACCEPT_KEYWORDS='amd64 ~amd64'vs 只是~amd64

如果你~amd64在你的ACCEPT_KEYWORDS.portage 中使用了所有最新的 ebuild,它通常包含很多不稳定的东西。我认为这就是为什么会出现缺少依赖项的原因。例如,如果您想安装software-a,则可能会发生这种情况,而 testing 分支中的最新版本是software-a-2.3.4,它需要library-b-5.6.7,但还没有 ebuild。至于amd64 ~amd64,只是~amd64,它们是相同的,真的,因为如果你的架构是AMD64你将有amd64ACCEPT_KEYWORDS,不管是什么。

4. 关键字的顺序重要吗?

不,因为这只是您的ACCEPT_KEYWORDS变量是否包含某个关键字的问题。它就像一个集合(无序)。

用了一段时间的Gentoo,我还是不敢把~amd64我的ACCEPT_KEYWORDS. 它太不稳定了,真的不推荐,第一次设置它保证很多破损。

  • @pepoluan 如果 `~amd64` 只是为了拥有 `xtables-addons` 那么你应该把它放在 `/etc/portage/package.keywords` 或 `/etc/portage/package.accept_keywords` 中,而不是使用不稳定的测试分支. 有关更多信息,请参阅“man portage”,或在此处提出不同的问题。 (2认同)