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

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

当我运行时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. 如果我选择~amd64equery则不会使用仅适用于 的包 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.globals配置ACCEPT_KEYWORDS。根据eselect profile list,未选择任何配置文件。

答案1

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

来自 man make.conf:

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

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

2.~amd64-linux 怎么样?

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

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

如果你~amd64的 .portage 中有ACCEPT_KEYWORDS,portage 将使用所有最新的 ebuild,其中通常包含很多不稳定的东西。我认为这就是为什么缺少依赖项是可以预料的。例如,如果您想安装software-a,而测试分支中的最新版本是software-a-2.3.4,它需要library-b-5.6.7,而它还没有 ebuild ,则可能会发生这种情况。关于amd64 ~amd64和 just ~amd64,它们实际上是相同的,因为如果你的架构是 amd64 ,无论如何你都会有amd64in 。ACCEPT_KEYWORDS

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

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

使用Gentoo有一段时间了,我还是不敢把~amd64我的ACCEPT_KEYWORDS.它太不稳定了,所以真的不推荐,第一次设置它肯定会造成很多损坏。

答案2

ACCEPT_KEYWORDS 环境变量用于允许构建当前架构的“所有”尚未标记的稳定包/版本。

拱门前面的 ~ 表示不稳定(未“完全”测试)。

如果您确实需要最新版本,通常更好的方法是使用 /etc/portage/package.keywords 并使用 ~amd64 关键字列出其中的包。

顺便说一句:amd64防火墙,维基百科不是这样定义overkill的吗?

  1. 是的
  2. 从未听说过“~amd64-linux”,但~的意思是“不稳定”。
  3. 不,预计“~amd64”不会排除“amd64”。
  4. 不。

相关内容