覆盖层

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 所有相关的覆盖层文件。