我们有一些 ebuild 将东西安装到某个目录中。目前,一些 ebuild 创建了目录,而其他 ebuild 只是假定它存在。为了解决这种情况,我想创建一个仅创建目录的 ebuild,以便其他 ebuild 可以仅依赖该 ebuild,然后一切都是模块化和封装的,等等。
1) 这是在 gentoo-land 中处理此类事情的正确方法吗?
2) 是否有特定的 ebuild 函数可用于此?目前我有
...
src_configure() {
mkdir my/dir
sudo fowners myuser my/dir
}
但它抱怨说源目录确实存在。我可以明确创建该目录,但由于此 ebuild 实际上并未安装任何内容,所以我宁愿不这样做。
答案1
免责声明:我不是 Gentoo 开发人员,对 ebuild 和 eclasses 的经验也很少。我只是 Gentoo 的长期用户。这是我尽力回答的问题。
我会避免创建新的 ebuild,只是为了添加您正在寻找的功能。
相反,您可以设置一个自定义的 eclass 来设置目标目录。
- 看看dobin() 函数和eclass 文档是一个很好的起点。
此时,您可以将自定义 eclass 导入到每个 ebuild 中,并以隐式方式(只需加载 eclass)或显式方式(通过从 ebuild 调用 eclass 中设置的函数)更改目标目录。不幸的是,我不知道具体如何做到这一点。