当我运行时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'
所有的依赖关系才能同时得到满足。
这是我的问题:
- 是
ACCEPT_KEYWORDS='amd64 ~amd64 ~amd64-linux'
有效的配置吗? - 我从文档中了解到,
amd64
稳定意味着稳定,~amd64
不稳定意味着不稳定。关于什么~amd64-linux
? - 如果我选择
~amd64
,equery
则不会使用仅适用于 的包amd64
,从而导致缺少依赖项。这是预期的吗?如果是这样,不稳定的测试人员应该至少使用ACCEPT_KEYWORDS='amd64 ~amd64'
而不是ACCEPT_KEYWORDS='~amd64'
? - 关键词的顺序重要吗?
附加信息:我安装了 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-linux
amd64-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 ,无论如何你都会有amd64
in 。ACCEPT_KEYWORDS
4. 关键词的顺序重要吗?
不,因为这只是你的ACCEPT_KEYWORDS
变量是否包含某个关键字的问题。它就像一个集合(无序)。
使用Gentoo有一段时间了,我还是不敢把~amd64
我的ACCEPT_KEYWORDS
.它太不稳定了,所以真的不推荐,第一次设置它肯定会造成很多损坏。
答案2
ACCEPT_KEYWORDS 环境变量用于允许构建当前架构的“所有”尚未标记的稳定包/版本。
拱门前面的 ~ 表示不稳定(未“完全”测试)。
如果您确实需要最新版本,通常更好的方法是使用 /etc/portage/package.keywords 并使用 ~amd64 关键字列出其中的包。
顺便说一句:amd64防火墙,维基百科不是这样定义overkill的吗?
- 是的
- 从未听说过“~amd64-linux”,但~的意思是“不稳定”。
- 不,预计“~amd64”不会排除“amd64”。
- 不。