这个问题与名为“atom”的文本编辑器无关。
Portage 手册页使用术语“ATOM”,但我找不到该术语的定义并且感到困惑。我知道atom描述了一个包,但我无法判断以下哪些项是atom:
dev-lang/python
dev-lang/python-3.4.5
=dev-lang/python-3.4.5
>=dev-lang/python-3.4.5
dev-lang/*
答案1
根据ebuild(5) 手册页,在“依赖关系”下:
A依赖原子只是 portage 在计算包之间的关系时使用的依赖关系。
然后它继续描述不同类型的原子:
- Atom 基础:裸类别/包名称(例如 dev-lang/python)
- Atom 版本:如上所述,但有一个版本(例如 dev-lang/python-3.4.5)
- 原子前缀运算符:带有布尔运算符的版本化原子(例如>=dev-lang/python-3.4.5)
- 扩展原子前缀/后缀:通配符和阻止符(例如 dev-lang/python-3*)
- Atom slot/sub-slots:可以共存的软件包版本(例如 dev-lang/python-3.4.5:3.4/3.4m,可以与 :2.7 和 :3.6 同时安装) )
- Atom USE 语句:处理 USE 标志
这是 ebuilds 内部使用的内容,对于日常使用来说并不是真正必要的,因为只有包维护者会定期看到这些(不过,您会看到插槽。)
然而,Portage 对原子的使用略有不同。根据它的手册页,它支持以下原子类型:
- 基础:裸类别/包(例如 dev-lang/python)
- 版本:类别/包版本(例如 dev-lang/python-3.4.5),带或不带比较运算符
- 插槽:类别/包版本:插槽(例如 dev-lang/python-3.4.5:3.4)
- 存储库:类别/包版本::存储库(例如 dev-lang/python::gentoo)
- 通配符:任意替换(例如 dev-lang/* 或 =*/*-9999)
它们并不是真正在依赖意义上使用,但是当它们被发送到 ebuild 系统时,它们大致遵循相同的规则。您也可以将它们组合起来,因此“<*/python*-9999:3.6::test”将是有效的原子规范。不过,我通常坚持使用基础、版本化和存储库原子,因为插槽通常并不重要,并且如果您不小心,通配符可能会匹配意想不到的东西。