覆盖层
Portage 可以通过使用覆盖层在多个位置查找软件包。覆盖层的位置由一个或多个 repos.conf 文件中的 location
变量控制。
覆盖层应包含与 Gentoo 仓库相同的目录结构(尽管只需要包含必要的目录)。例如,一个简单的覆盖层可能具有如下目录结构:
overlay |-- dev-util `-- gengetopt |-- Manifest |-- files | `-- gengetopt-2.13-foobar.patch `-- gengetopt-2.13.ebuild
覆盖层可用于“添加”树中的项目(尽管如果添加了任何新类别,则必须确保使用 /etc/portage/categories
)或覆盖现有条目。
覆盖层和 eclass
在覆盖层中使用 eclass 时要非常小心。当覆盖层 eclass 发生更改时,Portage 不会执行缓存更新,当覆盖层 ebuild 使用的主 Gentoo 仓库 eclass 发生更改时,它也不会执行缓存更新。在覆盖层中使用 eclass 时,您还可能会遇到虚假的“非法继承”通知(请参阅 质量保证通知:EClass foo 非法继承)。为了安全起见,在更新覆盖层 eclass 后,手动 touch
所有相关的覆盖层文件。