Gentoo Overlay 与自定义 ebuild

在掌握日志分析与调试后,下一步是 学习 Gentoo Overlay 与自定义 ebuild 的使用方法,扩展软件包来源和定制功能。

一、什么是 Overlay

  • Overlay:Portage 的扩展软件仓库
  • 允许用户获取官方 Portage 未包含的软件包
  • 支持自定义软件包和实验性版本

常用 Overlay 管理工具:eselect-repositorylayman(旧版)

二、添加 Overlay

  1. 使用 eselect-repository 添加官方或第三方 Overlay:
eselect repository list          # 查看已启用 Overlay
eselect repository enable guru-mirror
emerge --sync guru-mirror

`

  1. 手动添加 Overlay(使用 git):
git clone https://github.com/username/overlay.git /var/lib/layman/overlayname
  1. 更新 Overlay:
emerge --sync overlayname

三、自定义 ebuild

  1. ebuild 目录结构示例:
my-overlay/
└── app-misc/
    └── hello/
        └── hello-1.0.ebuild
  1. 创建简单 ebuild 示例 hello-1.0.ebuild
EAPI=8

DESCRIPTION="Hello World example"
HOMEPAGE="https://example.com"
SRC_URI="https://example.com/hello-1.0.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"

src_install() {
    dodoc README
    dobin hello.sh
}
  1. 添加到 Overlay 并安装:
ebuild hello-1.0.ebuild manifest
emerge --ask app-misc/hello

四、管理自定义 ebuild

  • 定期更新 Overlay 与 ebuild
  • 使用 repoman 检查 ebuild 语法和质量:
repoman manifest app-misc/hello
repoman full
  • 保持版本控制(如 git)管理自定义 Overlay

五、建议操作

  • 对实验性软件使用 Overlay,避免破坏稳定系统
  • 熟悉 ebuild 格式和 Portage 构建流程
  • 使用 Overlay 管理多个软件源,实现灵活定制