FreeBSD Porter 手册

The FreeBSD Documentation Project

FreeBSD 中文计划

修订: 42142
法律通告
法律通告
2000 年 4 月 由 .
2005 年 11 月 由 .

目录
1. 介绍
2. 自行制作新 port
3. 简单的 port
3.1. 编写 Makefile
3.2. 创建描述文件
3.3. 创建校验和文件
3.4. 测试 port
3.5. 用 portlint 来检查 port
3.6. 提交新 port
4. 复杂的 Porting
4.1. 整个系统是如何运转的?
4.2. 获取源代码
4.3. 修改 port
4.4. 打补丁
4.5. 配置
4.6. 处理用户输入
5. 配置 Makefile
5.1. 作者发布的代码
5.2. 命名
5.3. 分类
5.4. 源码包文件
5.5. MAINTAINER (监护人)
5.6. COMMENT (一句话说明)
5.7. 依赖关系
5.8. MASTERDIR (主 port 所在的目录)
5.9. 联机手册
5.10. Info 文件
5.11. Makefile 选项
5.12. 指定工作临时目录
5.13. 处理冲突
5.14. 安装文件
6. 特殊情况
6.1. 共享库
6.2. Ports 的发行限制
6.3. 联编机制
6.4. 利用 GNU autotools
6.5. 使用 GNU gettext
6.6. 使用 perl
6.7. 使用 X11
6.8. 使用 GNOME
6.9. 使用 Qt
6.10. 使用 KDE
6.11. 使用 Java
6.12. Web 应用, Apache 和 PHP
6.13. 使用 Python
6.14. 使用 Tcl/Tk
6.15. 使用 Emacs
6.16. 使用 Ruby
6.17. 使用 SDL
6.18. 使用 wxWidgets
6.19. 使用 Lua
6.20. 使用 Xfce
6.21. 使用 Mozilla
6.22. 使用数据库
6.23. 启动和停止服务 (rc 脚本)
6.24. 添加用户和用户组
6.25. 依赖内核源代码的 Ports
7. 高级 pkg-plist 用法
7.1. 根据 make 变量对 pkg-plist 进行修改
7.2. 空目录
7.3. 配置文件
7.4. 动态装箱单与静态装箱单的对比
7.5. 装箱单 (package list) 的自动化制作
8. pkg-* 文件
8.1. pkg-message (安装预编译包时显示的消息文件)
8.2. pkg-install (安装预编译包时执行的脚本文件)
8.3. pkg-deinstall (卸载时执行的脚本文件)
8.4. pkg-req (安装预编译包时检测是否应执行操作的脚本文件)
8.5. 改变 pkg-* 文件的名字
8.6. 使用 SUB_FILESSUB_LIST
9. 测试您的 port
9.1. 运行 make describe
9.2. Portlint
9.3. 使用 Port Tools 来完成测试
9.4. PREFIX (安装时的顶级目录名) 和 DESTDIR
9.5. Tinderbox
10. 升级一个 port
10.1. 使用 CVS 制作补丁
10.2. UPDATING 和 MOVED 文件
11. Ports 的安全
11.1. 安全为何如此重要
11.2. 修复安全漏洞
11.3. 通知整个用户群体
12. 该做什么和不该做什么
12.1. 介绍
12.2. WRKDIR (联编时使用的临时目录)
12.3. WRKDIRPREFIX (用于联编的临时目录的父目录名)
12.4. 区分不同的操作系统, 以及 OS 的版本
12.5. __FreeBSD_version 值
12.6. 在 bsd.port.mk 之后写一些内容
12.7. 在 wrapper 脚本中使用 exec 语句
12.8. 理性行事
12.9. 遵循 CCCXX 设置
12.10. 遵循 CFLAGS
12.11. 线程库
12.12. 反馈
12.13. README.html
12.14. 使用 BROKENFORBIDDENIGNORE 阻止用户安装 port
12.15. 使用 DEPRECATEDEXPIRATION_DATE 表示某个 port 将被删除
12.16. 避免使用 .error 结构
12.17. 对于 sysctl 的使用
12.18. 重新发布的 distfiles
12.19. 杂记
13. 示范的 Makefile
14. 保持同步
14.1. FreshPorts
14.2. 代码库的 Web 访问界面
14.3. FreeBSD Ports 邮件列表
14.4. 位于 pointyhat.FreeBSD.org 的 FreeBSD Port 联编集群
14.5. FreeBSD 的 Ports Distfile 扫描器
14.6. FreeBSD 的 Ports 追踪系统
表格清单
5.1. 常用的魔术 MASTER_SITES
5.2. 常用的 USE_* 变量
5.3. 常见的 WITH_*WITHOUT_* 变量
6.1. gmake 有关的 port 变量
6.2. 用于用到了 configure 脚本的 port 的变量
6.3. 使用 scons 的 port 会用到的变量
6.4. 用于用到 perl 的 port 的变量
6.5. 用到 X 的 port 可以使用的变量
6.6. 用于表示对 X11 某些组件的依赖关系的变量
6.7. 用于使用 Qt 的 port 的变量
6.8. 其他用于使用 Qt 4.x 的变量
6.9. 可用的 Qt4 函数库组件
6.10. 可用的 Qt4 工具组件
6.11. 可用的 Qt4 插件组件
6.12. 用于使用 KDE 3.x 的 port 的变量
6.13. 可用的 KDE4 组件
6.14. 用到 Java 的 port 可以使用的变量
6.15. 向使用了 Java 的 port 提供的变量
6.16. 为使用 Java 的 port 定义的常量
6.17. 用到 Apache 的 port 可以使用的变量
6.18. 在移植 Apache 模块时比较有用的变量
6.19. 用到 PHP 的 port 中可以使用的变量
6.20. 对用到 Python 的 port 最有用的一些变量
6.21. 用到 Tcl/Tk 的 port 可以使用的变量
6.22. 使用 Ruby 的 port 可以使用的变量
6.23. 使用 Ruby 的 port 中的一些可用的只读变量
6.24. 用于选择 wxWidgets 版本的变量
6.25. 可用的 wxWidgets versions
6.26. wxWidgets 版本
6.27. 用于选择希望的版本的 wxWidgets versions
6.28. 可用的 wxWidgets 组件
6.29. 可用的 wxWidgets 依赖类型
6.30. 默认的 wxWidgets 依赖关系类型
6.31. 用以在 Unicode 版本的 wxWidgets 的变量
6.32. 为使用 wxWidgets 的 port 定义的变量
6.33. 可用于 WX_CONF_ARGS 的值
6.34. 用于选择 Lua 版本的变量
6.35. 可用的 Lua 版本
6.36. 指定 Lua 版本
6.37. 用于选择推荐 Lua 版本的变量
6.38. 可用的 Lua 组件
6.39. 可用的 Lua 依赖关系类型
6.40. 默认的 Lua 依赖关系类型
6.41. 为用到 Lua 的 port 定义的变量
6.42. 用到 Mozilla 的 port 使用的变量
6.43. ports 中有关数据库的变量
10.1. cvs update 文件名前字母前缀的含义
12.1. __FreeBSD_version 值
范例清单
5.1. 简化的 MASTER_SITES:n 用法, 每个文件来自一个站点
5.2. 简化的 MASTER_SITES:n 用法, 其中同一个站点上提供了不止一个文件
5.3. MASTER_SITE_SUBDIRMASTER_SITES:n 的详细用法
5.4. 用到逗号分隔符、 多个文件, 多个站点和 不同子目录的 MASTER_SITES:n 详细用法
5.5. MASTER_SITE_SOURCEFORGEMASTER_SITES:n 的详细用法
5.6. 简化的 PATCH_SITES 中的 MASTER_SITES:n 用法。
5.7. 如何使用 ALWAYS_KEEP_DISTFILES
5.8. 简单的 OPTIONS 用法
5.9. Old style use of OPTIONS
5.10. 处理选项时的错误做法
5.11. 处理选项时的正确做法
6.1. 使用 USE_XORG 的例子
6.2. 在变量中使用与 X11 有关的变量
6.3. 选择 Qt4 组件
6.4. USE_KDE4 示例
6.5. 用于 PEAR 类的 Makefile 例子
6.6. 选择 wxWidgets 组件
6.7. 检测已安装的 wxWidgets 版本和组件
6.8. 在命令中使用 wxWidgets 变量
6.9. 选择 Lua 版本
6.10. 选择 Lua 组件
6.11. 检测已安装的 Lua 版本和组件
6.12. 告诉 port 到什么地方去找 Lua
6.13. 在命令中使用 Lua 变量
12.1. 怎样避免使用 .error

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.