Gentoo 创建本地 Overlay / ebuild repository


Gentoo 创建本地 Overlay / ebuild repository

Creating an ebuild repository - Gentoo Wiki / Defining a custom ebuild repository

必要性

  • 更好的学习 Gentoo 的 “核心

  • 补充官方仓库

  • 自定义官方仓库对应版本
    比如将dwm打补丁后的源码作为上游源

创建本地仓库

Creating an empty ebuild repository

Using the eselect repository module, it is possible to make an ebuild repository skeleton with just one command:

eselect repository create xpkgs

A new ebuild repository can also be created "by hand", as explained in the Handbook section defining a custom ebuild repository.

可选 跟踪修改

Track changes (optional)

To start using git to develop an ebuild repository, first initialize the git repository:

cd /var/db/repos/xpkgs
git init
git add .
git commit

添加ebuild

Adding an ebuild to an ebuild repository

Search Portage & Overlays: Gentoo Portage Overlays - Newest Ebuilds (zugaina.org)

mkdir -p /var/db/repos/xpkgs/x11-wm/dwm
cp ~/dwm-6.2.ebuild /var/db/repos/xpkgs/x11-wm/dwm/dwm-6.2.ebuild
chown -R portage:portage /var/db/repos/xpkgs

Simple version bump of an ebuild

In the best possible case, it may be feasible to bump just by duplicating the ebuild in an ebuild repository and updating the version number in the filename - but not for an ebuild repository configured to be synced, the changes would be overwritten when syncing.

生成校验文件

repoman

Use repoman's functions to act on an ebuild repository, all while enforcing a minimal level of quality in the changes to ebuilds and related metadata, and to perform checks.

pushd /var/db/repos/xpkgs/x11-wm/dwm
repoman manifest
popd

ebuild

The ebuild command can still be used to generate manifest/digest files, however it does not include any of the other quality assurance benefits (such as debug output) included with repoman:

ebuild dwm-6.2.ebuild digest
or
ebuild dwm-6.2.ebuild manifest
>>> Creating Manifest for /var/db/repos/xpkgs/x11-wm/dwm