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