原文

ebuild 的格式

ebuild 是一个在特殊环境下执行的 bash 脚本,后缀为 .ebuild

文件命名规则

一个 ebuild 应当以 名字-版本.ebuild 的方式命名.

名字部分应当只使用英文字母以及数字,下划线,连接符-和加号.强烈不推荐使用大写字母,虽然他们是合乎规则的.

当然,名字是不能以-+开头的,也不能以-结尾.

版本号则是有一些复杂,一般来说它是一些被.所分开的数字,例如 1.2.3,20050108.最后一位有可以是个字母,例如 1.2b,当然这个字母不能用来表示 beta ,在 Portage 中,1.2b1.21.2a 大(新).

在版本号后可以添加一个后缀(suffix),以用来表示发行版(Release) 状态.这里我们用一个表格来表示.

后缀 含义
`_alpha` Alpha 发行版(最早)
`_beta` Beta 发行版
`_pre` 预发行版
`_rc` 最终候选版
普通版本
`_p` 补丁版本

这些后缀后可以追加一位非零整数.例如 _alpha3

这些后缀可以一起使用并且将被迭代(iteratively)处理,例如:

  • foo-1.0.0_alpha_pre
  • foo-1.0.0_alpha_rc1
  • foo-1.0.0_beta_pre
  • foo-1.0.0_beta_p1

所有的版本数字都不应超过 18 位.

同时,版本号中可以包含一个 Gentoo 修订(revision)版本号如 -r1.最初的 Gentoo 版本应当没有,而第一个修订版应为 -r1,第二个为 -r2,依此类推.你可以看一下 Ebuild Revision

总之,最终的文件名应该类似 libfoo-1.2.5b_pre5-r2.ebuild

ebuild 文件头

所有收录入 Portage 树(Tree)中的 ebuild 都应拥有三行用来声明版权的文件头.他们必须与 $(portageq get_repo_path / gentoo)/header.txt 完全相同.注意 $id$ 行并非需要手动修改,他们会在 staging 阶段自动更改.

一个例子:

# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

缩进与空格

所有在 ebuild 中的缩进都应该由 Tab 缩进,每一层一个 Tab,Tab 应只在缩进中使用,永远不要在内文中使用 Tab.

避免使用一长串的空格,Repo 维护者会在你的 ebuild 内有一长串的空格时警告你(按空格而非 Tab).

尽可能避免使一行超过 80 位,在这里, ‘位’ 一般等同于一个字符,一个缩进(Tab)为 4 位,多字节字符视为一位.

编码

所有的 ebuild,包括 eclasses,metadata 文件和 ChangeLogs 必须使用 UTF-8 编码.GLEP 31 中有更多的细节.


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