23.4. 更新系统附带的文档

文档是 FreeBSD 操作系统的组成部分。 最新的 FreeBSD 文档总是可以通过访问 FreeBSD 网站 获得, 有些用户的网络可能很慢, 甚至完全没有网络。 则可以通过很多方法可以更新 FreeBSD 文档的本地副本。

23.4.1. 使用 Subversion 来更新文档

FreeBSD 文档的源代码可以使用 svn 工具获得。 本节将介绍如何:

  • 安装文档工具链, 用于编译 FreeBSD 文档源代码所需的工具。

  • 使用 svn 工具下载文档源码到 /usr/doc 目录中。

  • 从源代码编译 FreeBSD 文档, 并安装到 /usr/share/doc 目录。

  • 认识一些由文档生成系统所提供的编译选项, 比如选择生成指定语言的部分文档, 或者输出指定格式。

23.4.2. 安装 svn 工具和文档工具链

从源代码编译 FreeBSD 文档需要的工具, 并不是 FreeBSD 基本系统的组成部分, 因为这些工具需要大量的磁盘空间, 并且并不是对所有 FreeBSD 用户都需要, 它们只对那些活跃撰写 FreeBSD 新文档或经常从源代码更新文档的用户有用。

所需要的工具, 包括 svn 工具, 都可以在 FreeBSD 文档计划维护的 textproc/docproj 主 port 处安装。

Note:

如果没有输出 PostScript® 或 PDF 文档的需求, 可以考虑安装 textproc/docproj-nojadetex 这个 port 。 这套文档工具链包含了除 teTeX 排版引擎外的所有工具。 teTeX 是一个很庞大的工具集, 因此如果没有 PDF 输出需求的话, 忽略它将是一个很明智的选择。

23.4.3. 更新文档源代码

以下示例, 使用 svn 工具通过 HTTPS 协议, 从美国西部镜像获取文档源代码的原始副本:

# svn checkout https://svn0.us-west.FreeBSD.org/doc/head /usr/doc

从现有的镜像站里就近选择 Subversion 镜像站

初始下载文档源代码可能需要一些时间, 请您耐心等待直到它完成。

文档后续更新可以通过运行以下命令完成:

# svn update /usr/doc

初始签出源代码后, 提供了另一种由 /usr/doc/Makefile 提供的更新方法, 通过运行以下命令更新:

# cd /usr/doc
# make update

23.4.4. 文档源代码中可调整的选项

FreeBSD 文档的更新和编译系统支持一些方便只更新一部分文档, 或只编译特定格式及译文的选项。 这些选项可以在 /etc/make.conf 文件中配置, 也可以通过使用 make(1) 命令行参数指定。

这些选项包括:

DOC_LANG

准备编译和安装的语言列表。 例如, 指定 en_US.ISO8859-1 时, 表示仅编译英文版的文档。

FORMATS

准备输出的格式列表。 目前, 系统支持 htmlhtml-splittxtpspdfrtf 格式。

DOCDIR

准备安装文档的目录。 默认为 /usr/share/doc 目录。

了解 FreeBSD 其他可供配置的全局 make 变量, 请参阅 make.conf(5)

有关 FreeBSD 文档构建系统更多支持的变量, 请参阅 FreeBSD 文档计划入门之新手必读

23.4.5. 从源代码安装 FreeBSD 文档

/usr/doc 目录中下载好最新的文档快照后, 就可以开始编译文档了。

要更新 DOC_LANG 中指定的所有语言文档, 可以执行以下命令:

# cd /usr/doc
# make install clean

如果只有某个特定语言的文档需要更新, 则可以切换到 /usr/doc 目录中的对应子目录执行 make(1) 更新:

# cd /usr/doc/en_US.ISO8859-1
# make update install clean

如果需要指定输出格式, 则可以添加 FORMATS 参数:

# cd /usr/doc
# make FORMATS='html html-split' install clean

有关编辑和提交更正文档的信息, 请参阅 FreeBSD 文档计划入门之新手必读

23.4.6. 使用 Ports 更新文档

Based on the work of Marc Fonvieille.

上一节介绍从源代码更新 FreeBSD 文档的方法。 基于源代码的更新的方法可能并不是对于所有的 FreeBSD 系统都可行有效。 从源代码构建, 需要建立文档工具链 , 熟悉 svn 工具和会从仓库检出源代码, 还有一些编译已检出代码的手工步骤。 本节介绍另一种使用 Ports Collection 来更新已安装文档的方法。

  • 下载并安装预编译文档快照, 这将无需在本地编译任何部份, 或安装文档工具链。

  • 下载文档源代码, 并通过 ports 框架构建它们, 这将使得检出和编译的步骤更简易。

以上两种更新 FreeBSD 文档的方法都是由 文档工程组 每月更新维护的 文档 ports 所提供支持的。 它们都位于 FreeBSD Ports Collection 的 docs 目录下。

23.4.6.1. 编译和安装文档 Ports

文档 ports 使用 ports 的构建框架使得文档的编译变得更加容易。 它能自动获取文档源代码, 并配合适当的环境设置和 make(1) 命令行选项, 它使得安装和卸载文档变得像 FreeBSD 其他 port 或预编译包一样容易。

Note:

当在本地编译文档 ports 时, 文档工具链 ports 会被列为依赖关系, 而被自动安装。

文档 ports 组织形式如下:

  • 第一种是 主 port , 位于 misc/freebsd-doc-en 下, 即安装所有英文文档的 ports 。

  • 另外一种是 文档 port 合集 , 位于 misc/freebsd-doc-all 下, 这将会构建并安装所有可用语言的文档。

  • 最后一种是各种翻译版本的 从 port , 比如: misc/freebsd-doc-hu 就是匈牙利文版的文档。

以下示例将会安装与 http://www.FreeBSD.org 格式相同的, 使用的分章节的 HTML 英文文档到 /usr/local/share/doc/freebsd 目录中, 通过 port 安装使用:

# cd /usr/ports/misc/freebsd-doc-en
# make install clean
23.4.6.1.1. 常见的调整选项

有许多选项可以用来调整文档 ports 默认行为, 它们包括:

WITH_HTML

用于构建单一文件的 HTML 格式文档。 文档名视情况而定通常会保存为 article.htmlbook.html , 另外会附带一些图片文件。

WITH_PDF

用于构建 Adobe® 可移植文档格式 ( PDF )文档。 该格式的文档文件名视情况而定通常为 article.pdfbook.pdf

DOCBASE

用于指定文档安装目录。 默认为 /usr/local/share/doc/freebsd 目录。

Note:

默认安装目录与 svn 方式的默认安装目录不同。 这是因为通常 ports 应用会被安装到 /usr/local 目录中。 这可以通过 PREFIX 环境变量来覆盖默认值。

以下使用此变量来安装匈牙利文版文档的 PDF 格式:

# cd /usr/ports/misc/freebsd-doc-hu
# make -DWITH_PDF DOCBASE=share/doc/freebsd/hu install clean

23.4.6.2. 使用文档预编译包

正如前文所述, 通过 ports 从源代码编译生成文档, 需要在本地安装文档工具链并需要一些编译所需的磁盘空闲空间。 当资源不足以安装文档工具链或从源代码编译需要磁盘空闲空间时, 我们仍可以通过 ports 预先编译的文档快照版本安装。

文档工程组 每个月都会制作 FreeBSD 文档的快照版本的预编译包。 这些预编译包可以通过包管理工具进行管理, 比如 pkg_add(1)pkg_delete(1) 等等。

Note:

当使用预编译包时, 将会安装指定语言相关的 所有 可用的 FreeBSD 文档。

例如, 以下命令将安装匈牙利文最新版预编译文档包:

# pkg_add -r hu-freebsd-doc

Note:

预编译包使用与对于 ports 不同的命名规则: lang-freebsd-doc 。 这里的 lang 是语言代码的简短形式, 比如 hu 表示匈牙利文, zh_cn 表示简体中文。

23.4.6.3. 更新文档 Ports

文档 ports 可以通过任何可以更新 port 的工具更新。 例如, 使用 ports-mgmt/portmaster 工具通过预编译包方式更新匈牙利文预编译包:

# portmaster -PP hu-freebsd-doc

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

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

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