有些时候呢,你需要加一些 Ebuild 或者 Profile,结果发现好麻烦啊好麻烦啊,为什么不自己开个 Overlay 呢?

那么,就开始吧!首先创建我们的 Overlay 文件夹,个人习惯放在 /usr/local/portage

mkdir -p /usr/local/portage/{metadata,profiles}

其中,metadata 是存放 Overlay 属性用,Profiles 则是存放 Portage profile 相关文件的地方.

然后进行基础的设定.

echo 'Overlay 名字' > /usr/local/portage/profiles/repo_name
echo 'masters = gentoo' > /usr/local/portage/metadata/layout.conf
chown -R portage:portage /usr/local/portage

Overlay 的名字建议起一个好记得即可,masters = gentoo 的作用则是告诉 Portage 他是基于 gentoo 官方源 Overlay.如果你不是的话,你也可以设定为 masters = sabayon 之类的.

接下来把它添加到 Portage 设定里面.

#vim /etc/portage/repos.conf/local.conf
[Overlay 名字]
location = /usr/local/portage
masters = gentoo
auto-sync = no

这里的名字和 masters 要与你上面设定的保持一致.

至于加 Ebuild 就很简单了,按照 Portage 树的格式添加.这里我们添加 raspi-config-0_pre20160506.ebuild

mkdir -p /usr/local/portage/app-misc/raspi-config
cp ~/raspi-config-0_pre20160506.ebuild /usr/local/portage/app-misc/raspi-config/
chown -R portage:portage /usr/local/portage
pushd /usr/local/portage/app-misc/raspi-config/
repoman manifest
popd

首先我们按照 Ebuild 的分类,创建文件夹,然后将 Ebuild 复制进去,最后生成包括 SHA256 SHA512 WHIRLPOOL 校验的 Manifest.

如果你一次添加了很多的 Ebuild 的话,可以直接在 /usr/local/portage 处执行 repoman manifest,可以批量生成 Manifest.

然后就可以测试我们的 Ebuild 了.

emerge -a raspi-config

这样是不是比直接调用 ebuild.sh 好多了!


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.