Table of Contents

如何创建自己的overlay

Gentoo以其强大的portage管理系统著称,而ebuild是其中一个个细胞单元。一直对ebuild有种避而远之的态度,只对其些许概念,从来不曾深入研究过。而overlay也是,只会简单的使用layman来添加一个公开的overlay,目前有添加gentoo-china,gentoo-taiwan.

相信进阶的玩家都有创建自己的overlay来emerge一些比较新的package,而我也一直徘徊在overlay左右,以前也简单学习过overlay,ebuild的知识,但从来没有实际用过。

应该说创建自己的overlay并不复杂,但它也总是让大多数人敬而远之,我猜有两个原因:

其一,overlay+ebuild,要创建overlay必须学习ebuild,很多人都没认真的学习ebuild知识,所以看到overlay要学习ebuild,放弃。

其二,没有需求,这个我想应该是最主要的原因,如果真的有这样的需求,那肯定会花时间去学习一下,弄好之后,就属于一劳永逸了。而我也在这之列。

回到正文,更详细的说明可以参考官方文档

创建overlay目录

mkdir -p /usr/myoverlay

更改PORTDIR_OVERLAY

大多数的教程都是要在/etc/make.conf中添加。而我是添加到 /var/lib/layman/make.conf(至于为什么是这个文件,可以man layman).

这是我目前的配置,已经把新的overlay目录增加进去了。

pjq@gentoo-pjq ~ $ cat /var/lib/layman/make.conf

 

PORTDIR_OVERLAY="
/var/lib/layman/gentoo-taiwan
/var/lib/layman/gentoo-china
/var/lib/layman/desktop-effects
/usr/myoverlay
$PORTDIR_OVERLAY
"

添加ebuild.

这里可以直接从/usr/portage拷贝一些过来,我是拷贝了www-client/chromium-bin.

这里要注意目录结构,目录结构必须是/usr/myoverlay/www-client/chromium-bin,要不然ebuild操作的时候会提示目录结构不正确。

这是我目前的目录结构:

gentoo-pjq myoverlay # ls -R
.:
profiles  README  www-client

./profiles:
repo_name

./www-client:
chromium-bin

./www-client/chromium-bin:
chromium-bin-6.0.470.0_p57318.ebuild  chromium-bin-9999.ebuild  Manifest

我把其它多余的ebuild都删掉了。

ebuild digest

ebuild chromium-bin-6.0.470.0_p57318.ebuild digest

完成之后就可以emerge chromium-bin了,会升级到最新的版本57318.

在github上新增一个project

在github上新增一个project,直接push到github上去。

这是我的地址:http://github.com/pjq/Gentoo

PS.找到一个维护有google chrome的overlay:

hg clone https://bitbucket.org/belak/belak.gentoo