FreeBSD Port 开发者手册
FreeBSD 中文社区
  • FreeBSD Port 开发者手册翻译项目
  • 编辑日志
  • 译者说明
  • FreeBSD Port 开发者手册
    • FreeBSD Port 开发者手册
  • 第1章 简介
    • 1.1.简介
  • 第2章 制作新的 port
    • 2.1.制作新的 port
  • 第3章 简单的 port
    • 3.1.编写 Makefile
    • 3.2.编写描述文件
    • 3.3.创建校验和文件
    • 3.4.测试 port
    • 3.5.用 portlint 来检查 port
    • 3.6.提交新的 port
  • 第4章 复杂的 Port
    • 4.1 Port 工作原理
    • 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.许可证
    • 5.9.PORTSCOUT
    • 5.10.依赖
    • 5.11.从属 port 和 MASTERDIR
    • 5.12.man 手册
    • 5.13.info 文件
    • 5.14.Makefile 参数
    • 5.15.特殊的工作目录
    • 5.16.解决冲突
    • 5.17.安装文件
    • 5.18. 使用 BINARY_ALIAS 来重命名命令,而不是在编译中打补丁
  • 第6章 特殊情况
    • 第6章 特殊情况
  • 第7章 Flavors
    • 7.1.Flavors 简介
    • 7.2.使用 FLAVORS
    • 7.3.USES=php 和 Flavors
    • 7.4.USES=python 和 Flavors
    • 7.5.USES=lua 和 Flavors
  • 第8章 高级 pkg-plist 实践
    • 8.1.根据 make 变量对 pkg-plist 进行修改
    • 8.2.空目录
    • 8.3.配置文件
    • 8.4.动态与静态软件包列表
    • 8.5.自动创建软件包列表
    • 8.6.用关键词扩展软件包列表
  • 第9章 pkg-*
    • 9.1.pkg-message(安装二进制包时显示的消息文件)
    • 9.2.pkg-install、pkg-pre-install 和 pkg-post-install(安装二进制包时执行的脚本文件)
    • 9.3.pkg-deinstall、pkg-pre-deinstall 和 pkg-post-deinstall(卸载时执行的脚本文件)
    • 9.4.修改 pkg-* 文件的名字
    • 9.5.使用 SUB_FILES 和 SUB_LIST
  • 第10章 测试 port
    • 10.1.运行 make describe
    • 10.2.运行 make test
    • 10.3.Portclippy / Portfmt
    • 10.4.Portlint
    • 10.5.Port 工具
    • 10.6.PREFIX 和 DESTDIR
    • 10.7.Poudriere
    • 10.8.调试 port
  • 第11章 升级 port
    • 11.1.使用 Git 制作补丁
    • 11.2.UPDATING 和 MOVED
  • 第12章 安全
    • 12.1.安全为何如此重要
    • 12.2.修复安全漏洞
    • 12.3.向社区通报情况
  • 第13章 该做什么和不该做什么
    • 第13章 该做什么和不该做什么
  • 第14章 一个简单的 port
    • 第14章 一个简单的 port
  • 第15章 在 Port Makefile 中变量的顺序
    • 第15章 在 Port Makefile 中变量的顺序
  • 第16章 保持更新
    • 第16章 保持更新
  • 第17章 使用 USES 宏
    • 第17章 使用 USES 宏
  • 第18章 __FreeBSD_version 的值
    • 第18章 __FreeBSD_version 的值
由 GitBook 提供支持

FreeBSD 中文社区

在本页

这有帮助吗?

在GitHub上编辑
导出为 PDF
  1. 第4章 复杂的 Port

4.2.获取源代码

最后更新于2天前

这有帮助吗?

获取原始源代码(通常是压缩的 tarball 文件,foo.tar.gz 或 foo.tar.bz2),并将其复制到 DISTDIR 中。尽可能使用 主流 的源代码。

将变量 MASTER_SITES 设置为原始 tarball 存放的位置。对于大多数主流站点,bsd.sites.mk 中有快捷方式定义。如果可能的话,请使用这些站点及其相关定义,以避免在源代码中重复相同的信息。由于这些站点会随着时间的推移发生变化,因此如果不使用这些快捷方式,可能会给每个人带来维护上的噩梦。有关详细信息,请参见 。

如果没有一个FTP/HTTP站点与互联网连接良好,或者只能找到格式不标准的站点,请将源文件放在可靠的 FTP 或 HTTP 服务器上(例如,个人主页)。

如果找不到合适且可靠的地方来存放 distfile,我们可以将其“寄存”在 ftp.FreeBSD.org 上;然而,这种方法是最不推荐的。distfile 必须放在某个 freefall 账户的 ~/public_distfiles/ 目录下。请向提交该 Port 的人请求帮助。这个人还会将 MASTER_SITES 设置为 LOCAL/username,其中 username 是他们的 FreeBSD 集群登录名。

如果 Port 的 distfile 经常变化,而作者没有进行版本更新,请考虑将 distfile 放在个人主页上,并将其列为第一个 MASTER_SITES。尝试说服作者停止这样做;这确实有助于建立某种源代码管理。托管特定版本将防止用户遇到 checksum mismatch 错误,并减少我们 FTP 站点维护者的工作量。此外,如果一个 Port 只有一个主站点,建议将备份放在个人主页上,并将其列为第二个 MASTER_SITES。

如果 Port 需要额外的补丁,并且这些补丁可以从互联网下载,请同样将它们下载并放入 DISTDIR。即使这些补丁来自与主要源代码 tarball 不同的网站,也不需要担心,我们有办法处理这种情况(请参见下文对 的描述)。

MASTER_SITES
PATCHFILES