附录 A. 获取 FreeBSD

A.1. 镜像

FreeBSD 项目的官方镜像由项目集群管理员运营的许多机器组成,并使用 GeoDNS 将用户引导到最近的可用镜像。当前位置包括澳大利亚、巴西、德国、日本(两个站点)、马来西亚、南非、瑞典、台湾、英国、美国(加利福尼亚州、新泽西州和华盛顿州)。

官方镜像服务

服务名称协议更多信息

docs.FreeBSD.org

https

FreeBSD 文档门户。

download.FreeBSD.org

https ftp

ftp.FreeBSD.org 内容相同,ftp 是旧名称;建议使用 download.FreeBSD.org

git.FreeBSD.org

通过 httpsssh 使用 git

更多详细信息请参阅 使用 git 部分。

pkg.FreeBSD.org

pkg(8) 通过 httphttps

pkg(8) 程序使用的官方 FreeBSD 软件包存储库。

vuxml.FreeBSD.org / www.VuXML.org

https

FreeBSD 项目 VuXML 网页。pkg audit 从此服务获取漏洞列表。

www.FreeBSD.org

https

FreeBSD 网站。

所有官方镜像都支持 IPv4 和 IPv6。

http://ftp-archive.FreeBSD.org 不在 GeoDNS 基础设施中,仅在一个位置(美国)托管。

该项目正在寻找新的位置;愿意赞助的人员,请联系集群管理员团队以获取更多信息。

社区和其他公司维护的镜像列表

国家主机名协议

澳大利亚

ftp.au.FreeBSD.org

http http_v6 rsync rsync_v6

ftp3.au.FreeBSD.org

http ftp rsync

奥地利

ftp.at.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

巴西

ftp2.br.FreeBSD.org

http rsync rsync_v6

ftp3.br.FreeBSD.org

http ftp rsync

保加利亚

ftp.bg.FreeBSD.org

ftp ftp_v6 rsync rsync_v6

捷克共和国

ftp.cz.FreeBSD.org

http http_v6 rsync rsync_v6

丹麦

ftp.dk.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

芬兰

ftp.fi.FreeBSD.org

ftp

法国

ftp.fr.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp3.fr.FreeBSD.org

ftp

ftp6.fr.FreeBSD.org

http ftp rsync

德国

ftp.de.FreeBSD.org

ftp ftp_v6 rsync rsync_v6

ftp1.de.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.de.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp5.de.FreeBSD.org

ftp ftp_v6

ftp7.de.FreeBSD.org

http http_v6 ftp ftp_v6

希腊

ftp.gr.FreeBSD.org

http http_v6 ftp ftp_v6

ftp2.gr.FreeBSD.org

http http_v6 ftp ftp_v6 rsync

日本

ftp.jp.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.jp.FreeBSD.org

ftp rsync rsync_v6

ftp3.jp.FreeBSD.org

http rsync

ftp4.jp.FreeBSD.org

ftp

ftp6.jp.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

哈萨克斯坦

mirror.ps.kz

http ftp

mirror.neolabs.kz

http ftp

韩国

ftp.kr.FreeBSD.org

http https ftp rsync

ftp2.kr.FreeBSD.org

rsync

拉脱维亚

ftp.lv.FreeBSD.org

http ftp

荷兰

ftp.nl.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.nl.FreeBSD.org

http ftp rsync

mirror.nl.altushost.com

https

新西兰

ftp.nz.FreeBSD.org

http ftp

挪威

ftp.no.FreeBSD.org

ftp ftp_v6 rsync rsync_v6

波兰

ftp.pl.FreeBSD.org

http http_v6 ftp rsync rsync_v6

俄罗斯

ftp.ru.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.ru.FreeBSD.org

https ftp rsync

斯洛文尼亚

ftp.si.FreeBSD.org

http http_v6 ftp ftp_v6

南非

ftp.za.FreeBSD.org

https https_v6 rsync rsync_v6

ftp2.za.FreeBSD.org

http http_v6 ftp_v6

ftp4.za.FreeBSD.org

http ftp rsync

瑞典

ftp.se.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

mirror.se.altushost.com

https

台湾

ftp4.tw.FreeBSD.org

https ftp rsync

ftp5.tw.FreeBSD.org

http ftp

乌克兰

ftp.ua.FreeBSD.org

http ftp ftp_v6 rsync rsync_v6

英国

ftp.uk.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.uk.FreeBSD.org

http http_v6 https https_v6 ftp ftp_v6

美利坚合众国

ftp11.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp14.FreeBSD.org

ftp rsync (前官方一级镜像)

ftp5.FreeBSD.org

http http_v6 ftp ftp_v6

社区镜像支持的协议列表最后更新于 2022-01-31,不保证其准确性。

A.2. 使用 Git

A.2.1. 简介

截至 2020 年 12 月,FreeBSD 使用 git 作为存储所有 FreeBSD 基础源代码和文档的主要版本控制系统。截至 2021 年 4 月,FreeBSD 使用 git 作为存储所有 FreeBSD Ports 集合的唯一版本控制系统。

Git 通常是开发人员的工具。用户可能更喜欢使用 freebsd-update“FreeBSD 更新”)来更新 FreeBSD 基础系统。

本节演示如何在 FreeBSD 系统上安装 Git 并使用它创建 FreeBSD 源代码存储库的本地副本。

A.2.2. 安装

Git 可以从 Ports 集合或作为软件包安装。

# pkg install git

A.2.3. 运行 Git

要将源代码的干净副本获取到本地目录,请使用 git clone。此文件目录称为工作树

Git 使用 URL 来指定存储库。有三个不同的存储库,src 用于 FreeBSD 系统源代码,doc 用于文档,ports 用于 FreeBSD Ports 集合。所有三个都可以通过两种不同的协议访问:HTTPS 和 SSH。例如,URL https://git.FreeBSD.org/src.git 指定了 src 存储库的主分支,使用 https 协议。

表 1. FreeBSD Git 存储库 URL 表
项目Git URL

通过 HTTPS 访问只读 src 存储库

https://git.FreeBSD.org/src.git

通过匿名 SSH 访问只读 src 存储库

ssh://[email protected]/src.git

通过 HTTPS 访问只读 doc 存储库

https://git.FreeBSD.org/doc.git

通过匿名 SSH 访问只读 doc 存储库

ssh://[email protected]/doc.git

通过 HTTPS 访问只读 ports 存储库

https://git.FreeBSD.org/ports.git

通过匿名 SSH 访问只读 ports 存储库

ssh://[email protected]/ports.git

项目成员维护的外部镜像也可用;请参阅外部镜像部分。

克隆 FreeBSD 系统源代码存储库的副本

# git clone -o freebsd https://git.FreeBSD.org/src.git /usr/src

-o freebsd 选项指定了源;按照 FreeBSD 文档中的约定,源假定为 freebsd。由于初始检出必须下载远程存储库的完整分支,因此可能需要一段时间。请耐心等待。

最初,工作树包含 main 分支的源代码,对应于 CURRENT。要切换到 13-STABLE,请使用

# cd /usr/src
# git checkout stable/13

工作树可以使用 git pull 更新。要更新上面示例中创建的 /usr/src,请使用

# cd /usr/src
# git pull --rebase

更新比检出快得多,只传输已更改的文件。

A.2.4. 基于 Web 的存储库浏览器

FreeBSD 项目使用 cgit 作为基于 Web 的存储库浏览器:https://cgit.FreeBSD.org/

A.2.5. 针对开发者

有关存储库写入访问权限的信息,请参阅提交者指南

A.2.6. 外部镜像

这些镜像不是托管在 FreeBSD.org 上,但仍然由项目成员维护。用户和开发人员都欢迎在这些镜像上拉取或浏览存储库。正在接受 docsrc GitHub 存储库的拉取请求;否则,与这些镜像的项目工作流程仍在讨论中。

A.2.7. 邮件列表

FreeBSD 项目中关于 git 的一般使用和问题的邮件列表是 freebsd-git。有关更多详细信息,包括提交消息列表,请参阅邮件列表章节。

A.2.8. SSH 主机密钥

  • gitrepo.FreeBSD.org 主机密钥指纹

    • ECDSA 密钥指纹为 SHA256:seWO5D27ySURcx4bknTNKlC1mgai0whP443PAKEvvZA

    • ED25519 密钥指纹为 SHA256:lNR6i4BEOaaUhmDHBA1WJsO7H3KtvjE2r5q4sOxtIWo

    • RSA 密钥指纹为 SHA256:f453CUEFXEJAXlKeEHV+ajJfeEfx9MdKQUD7lIscnQI

  • git.FreeBSD.org 主机密钥指纹

    • ECDSA 密钥指纹为 SHA256:/UlirUAsGiitupxmtsn7f9b7zCWd0vCs4Yo/tpVWP9w

    • ED25519 密钥指纹为 SHA256:y1ljKrKMD3lDObRUG3xJ9gXwEIuqnh306tSyFd1tuZE

    • RSA 密钥指纹为 SHA256:jBe6FQGoH4HjvrIVM23dcnLZk9kmpdezR/CvQzm7rJM

这些也作为 DNS 中的 SSHFP 记录发布。

A.3. 使用 Subversion

A.3.1. 简介

截至 2020 年 12 月,FreeBSD 使用 git 作为存储所有 FreeBSD 源代码和文档的主要版本控制系统。来自 stable/11stable/12 和相关 releng 分支的 git 存储库的更改将导出到 Subversion 存储库。此导出将在这些分支的生命周期内继续进行。从 2012 年 7 月到 2021 年 3 月,FreeBSD 使用 Subversion 作为存储所有 FreeBSD Ports 集合的唯一版本控制系统。截至 2021 年 4 月,FreeBSD 使用 git 作为存储所有 FreeBSD Ports 集合的唯一版本控制系统。

Subversion 通常是开发人员的工具。用户可能更喜欢使用 freebsd-update“FreeBSD 更新”)来更新 FreeBSD 基础系统,并使用 git“使用 Ports 集合”)来更新 FreeBSD Ports 集合。2021 年 3 月之后,Subversion 仅用于旧版分支(stable/11stable/12)。

本节演示如何在 FreeBSD 系统上安装 Subversion 并使用它创建 FreeBSD 存储库的本地副本。还包括有关 Subversion 用法的其他信息。

A.3.2. Svnlite

FreeBSD 上已经安装了 Subversion 的轻量级版本,称为 svnlite。仅当需要 Python 或 Perl API 或需要更高版本的 Subversion 时,才需要 Subversion 的端口或软件包版本。

与普通 Subversion 用法的唯一区别在于命令名称为 svnlite

A.3.3. 安装

如果 svnlite 不可用或需要完整版本的 Subversion,则必须安装它。

Subversion 可以从 Ports 集合安装。

# cd /usr/ports/devel/subversion
# make install clean

Subversion 也可以作为软件包安装。

# pkg install subversion

A.3.4. 运行 Subversion

要将源代码的干净副本获取到本地目录,请使用 svn。此目录中的文件称为本地工作副本

在第一次使用 checkout 之前,请移动或删除现有的目标目录。在现有的非 svn 目录上执行检出可能会导致现有文件与从存储库引入的文件之间发生冲突。

Subversion 使用 URL 来指定存储库,格式为 protocol://hostname/path。路径的第一部分是要访问的 FreeBSD 存储库。有三个不同的存储库,base 用于 FreeBSD 基础系统源代码,ports 用于 Ports 集合,doc 用于文档。例如,URL https://svn.FreeBSD.org/base/head/ 指定了 src 存储库的主分支,使用 https 协议。

从给定存储库进行检出可以使用以下命令执行

# svn checkout https://svn.FreeBSD.org/repository/branch lwcdir

其中

  • repository 是项目存储库之一:baseportsdoc

  • branch 取决于使用的存储库。portsdoc 主要在 head 分支中更新,而 basehead 下维护 -CURRENT 的最新版本,并在 stable/11 (11.x) 和 stable/12 (12.x) 下维护 -STABLE 分支的各自最新版本。

  • lwcdir 是应将指定分支的内容放置到的目标目录。对于 ports,这通常是 /usr/ports,对于 base,是 /usr/src,对于 doc,是 /usr/doc

此示例使用 HTTPS 协议从 FreeBSD 存储库检出源代码树,并将本地工作副本放置在 /usr/src 中。如果 /usr/src 已经存在但不是由 svn 创建的,请记住在检出之前重命名或删除它。

# svn checkout https://svn.FreeBSD.org/base/head /usr/src

由于初始检出必须下载远程存储库的完整分支,因此可能需要一段时间。请耐心等待。

初始检出后,可以通过运行以下命令更新本地工作副本

# svn update lwcdir

要更新上面示例中创建的 /usr/src,请使用

# svn update /usr/src

更新比检出快得多,只传输已更改的文件。

除了检出之外,还可以通过/usr/ports/usr/src/usr/doc目录中的Makefile更新本地工作副本。设置SVN_UPDATE并使用update目标。例如,要更新/usr/src

# cd /usr/src
# make update SVN_UPDATE=yes

A.3.5. Subversion镜像站点

FreeBSD Subversion代码库位于

svn.FreeBSD.org

这是一个公开可访问的镜像网络,它使用GeoDNS选择合适的后端服务器。要通过浏览器查看FreeBSD Subversion代码库,请使用https://svnweb.FreeBSD.org/

HTTPS是首选协议,但需要安装security/ca_root_nss软件包才能自动验证证书。

A.3.6. 更多信息

有关使用Subversion的其他信息,请参阅名为Version Control with Subversion的“Subversion书籍”,或Subversion文档

A.4. 光盘副本

FreeBSD光盘副本可从几家在线零售商处获得


最后修改于:2024年9月20日,作者 Fernando Apesteguía