文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>ArchLinux ABS(转)

ArchLinux ABS(转)

时间:2006-10-20  来源:mylxiaoyi

Arch Build System (ABS)

二进制与源码

pacman 负责的是二进制,而 ABS 则是源码:它帮助你从源码创建你自己的软件包,也允许你通过自定制来重建 Arch 的软件包。过程通常是:

  1. 与服务器同步你的 ABS 树(用 root 来运行 abs)。
  2. 建立新目录 /var/abs/local/ 来指定之后创建软件包的存储位置。
  3. 从 /var/abs/ 拷贝 PKGBUILD.proto 模型到新建立的目录下,删除 proto 后缀,编辑加入新的软件包。
  4. 在工作目录下用 PKGBUILD 文件运行 makepkg。
  5. 使用 pacman 安装新创建的软件包。
  6. 把软件包发给你的朋友吹吹牛(又或是发给 Archer 让她/他可以把它放入主 ABS 树)。

同步你的 ABS 树

通过以 root 运行 abs 脚本,你可以同步在 /var/abs 下所有的 PKGBUILD 文件。同步需要 cvsup 软件包,如果没有安装系统将会提示。使用 CVS 作为中介,你可以在 ABS 内使用不同版本的树 - 仅需在 /etc/abs/supfile.arch 内进行设置。例如,默认的 supfile 是被设定为追踪 current 树的,它是最新的推荐源。你也可以追踪指定的版本,supfiles 的 comments 里可以得到更多的信息。

ABS 支持多个软件库,它可以在 /etc/abs/abs.conf 里启用或是禁用。默认是的软件库是 current 和 extra,而 unstable 是禁用的。

你还将看到一个 /etc/abs/supfile.extra 文件。它可以连接到所有不包含于主 ABS 软件库的非官方构建脚本。如果你不想使用这个软件库,可以删除这个文件,不过一般来说,编辑 abs.conf 要更为合理些。

如何创建软件包

创建过程在 makepkg manpage 中有详细的解说,创建软件包时可以在上面查看相关的指令。如果这对你没有帮助,留意下 wiki 里的教程,又或者在论坛或 IRC 里请求帮助。

软件包准则

为 Arch Linux 创建软件包时,你应当遵循下面的软件包准则,如果你想向 Arch Linux 提交你新的软件包时更是如此。

软件包命名

  • 软件包名只应由字母及数字字符组成;所有应当小写。
  • 软件包版本应当于作者发佈的版本一致。如果需要,可以包含字母(如,nmap 的版本是 2.54BETA32)。版本标识不能有连字符!只能是字母、数字和句点。
  • 软件包的发佈特指 Arch Linux 软件包。它允许用户区分新和旧的软件包创建脚本。当新的软件包首次发佈时,号码从 1 开始。修正和优化后,软件包将会被重新发佈到 AL 社区,号码将会增加。当一个新的版本出来时,发佈号码重置为 1 。软件包发佈的标识约束与版本标识相同。

目录

配置文件 应当存放于 /etc 目录下。如果多过一个配置文件,通常会使用子目录从而使 /etc 区域尽可能的保持简洁。使用 {pkgname}(译者注:即软件包名)作为子目录名:/etc/{pkgname}/。又或者其它更合适的名字,例如,apache 用 /etc/httpd/。

软件包文件应当遵循通用目录准则:

/etc 必要的系统配置文件
/usr/bin 应用程序执行文件
/usr/sbin 系统程序执行文件
/usr/lib 程序库
/usr/include 头文件
/usr/lib/{pkg} 模块、插件等
/usr/man 帮助页
/usr/share/{pkg} 应用程序数据
/etc/{pkg} 软件包配置文件(译者注:{pkg} 代表包名)
/opt 大的软件包(自身包含了程序库、头文件及配置文件等),如 KDE,Mozilla 等。

makepkg 的职责

当你使用 makepkg 创建软件包时,它将自己完成:

  1. 检查软件包的依赖是否满足。
  2. 从服务器上下载源码文件。
  3. 解开源码文件
  4. 打上必要的补丁
  5. 在伪根目录内创建软件以及安装
  6. 把 /usr/doc,/usr/info,/usr/share/doc 和 /usr/share/info 从软件包里删除。
  7. 移除二进制文件内的符号
  8. 移除程序库里的调试符号
  9. 在每个软件包内为其生成 meta 文件(译者注:即位元文件)
  10. 将伪根目录压缩入软件包文件内
  11. 将软件包文件存储到预设的目标目录(默认是 cwd)

其它

尽量避免在 PKGBUILD 脚本内引入新的变量,因为它们可能与 makepkg 自身使用的变量发生冲突。

无论如何都要避免使用 /usr/libexec/。使用 /usr/lib/{pkg} 来代替它。

软件包内位元文件的 Packager 区域可以通过在 /etc/makepkg.conf 修改适当的选项使用软件包创建器来进行自定义,也可以通过在使用 makepkg 创建软件包前导出 PACKAGER 环境变量来进行自定义:

# export PACKAGER="John Doe <your.email>" 

提交软件包

提交软件包前注意以下:

  1. 请在你的 PKGBUILD 文件的顶端加入一行注解,如下格式:
    # Contributor: Your Name <your.email>
  2. 校验软件包的依赖关系(例如,运行 ldd,脚本所需的动态可执行检查工具,等等)。使用 namcap 也是个好主意,它是由 Jason Chu 编写的,用于分析软件包。namcap 会告诉你关于损坏的许可、缺少的依赖、不需要的依赖以及一些常见的错误。你可以使用 pacman 来安装 namcap。
  3. 所有的软件包都应当使用 tar 文件压缩格式,目录内应包含新近创建的软件包,PKGBUILD,filelist 以及附加的文件(补丁、安装文件...)。档案名应该最少包含有软件包的名称。
  4. 好好看看关于软件包的公告,了解它的状况,因为整个过程新的实施往往还正被开发人员讨论着。如果觉得你的软件包重要得不能再等了,你当然可以去寻求一个 Trusted User 的帮助,看他是否愿意将你的软件包加入他的软件库。
相关阅读 更多 +
排行榜 更多 +
学霸校园模拟(樱花季)下载

学霸校园模拟(樱花季)下载

模拟经营 下载
逐粤之旅

逐粤之旅

飞行射击 下载
机器人突击队最新版

机器人突击队最新版

飞行射击 下载