【译】Gentoo Local Overlay

原文:https://wiki.gentoo.org/wiki/Custom_repository

Overlay/Local Overlay

有人给你了一个ebuild文件,你不知道该用它干什么?不要担心,接下来我们会介绍到

创建一个本地overlay

你只需要很简单的几步就可以创建一个本地overlay

1
2
3
4
root# mkdir -p /usr/local/portage/{metadata,profiles}  
root# echo 'NameOfYourOverlay' > /usr/local/portage/profiles/repo_name
root# echo 'masters = gentoo' > /usr/local/portage/metadata/layout.conf
root# chown -R portage:portage /usr/local/portage

接下来,让portage知道我们建了一个overlay

root# mkdir -p /etc/portage/repos.conf

FILE /etc/portage/repos.conf/local.conf

1
2
3
4
[NameOfYourOverlay]
location = /usr/local/portage
masters = gentoo
auto-sync = no

注意
“NameOfYourOverlay” 只是一个示例,你应该将他改为一个有意义的名称

注意
之前的方式是在make.conf中设置 ‘PORTDIR_OVERLAY’ 变量,现在已经被废弃掉了,不应该再被使用

添加一个ebuild到overlay中

现在,基本的框架已经搭建好了,你可以在overlay中添加ebuild了.在这个例子中就是app-dicts/artha-1.0.2. 我们首先确认这个ebuild文件在用户myuser 的home目录下,并且文件名称是artha-1.0.2.ebuild.

1
2
3
4
5
6
root# mkdir -p /usr/local/portage/app-dicts/artha  
root# cp ~myuser/artha-1.0.2.ebuild /usr/local/portage/app-dicts/artha/artha-1.0.2.ebuild
root# chown -R portage:portage /usr/local/portage
root# pushd /usr/local/portage/app-dicts/artha
root# repoman manifest
root# popd

现在你可以使用emerge来安装ebuild所表示的包

1
root# emerge -av1 app-dicts/artha

Crossdev

crossdev 将会自动将它生成的ebuils/categories放到在/etc/portage/repos.conf/中找到的优先级最好的overlay中,因此你必须设置overlay的优先级(priority),绝大多数用户将不愿意crossdev访问发行版laymanoverlay或者用户个人每个机器上的overlay(通常位于/usr/local/portage).创建一个crossdev专用的overlay应该这样做:

1
2
3
4
root# mkdir -p /usr/local/portage-crossdev/{profiles,metadata}  
root# echo 'local-crossdev' > /usr/local/portage-crossdev/profiles/repo_name
root# echo 'masters = gentoo' > /usr/local/portage-crossdev/metadata/layout.conf
root# chown -R portage:portage /usr/local/portage-crossdev

如果主Portage树使用Git同步,或者任何其他不校验ebuils文件的方法,使用如下方法来屏蔽"mastked by: corruption"的错误

FILE /usr/local/portage-crossdev/metadata/layout.conf

1
2
masters = gentoo
thin-manifests = true

然后指明Portagecrossdev使用这个overlay

FILE /etc/portage/repos.conf/crossdev.conf

1
2
3
4
5
[local-crossdev]
location = /usr/local/portage-crossdev
priority = 10
masters = gentoo
auto-sync = no

参考链接:
[0]: https://bugs.gentoo.org/show_bug.cgi?id=312313
[1]: https://wiki.gentoo.org/index.php?title=Crossdev&action=edit&redlink=1
[2]: https://wiki.gentoo.org/wiki/Layman

作者

0xforee

发布于

2015-11-25

更新于

2015-12-20

许可协议


欢迎关注我的公众号 0xforee,第一时间获取更多有价值的思考

评论