J.2. 工具集 #
下列工具用于处理文档。如后所述,其中一些可能是可选的。
- DocBook DTD #
这是 DocBook 自身的定义。我们当前使用 4.5 版;不能使用更高或更低的版本。你需要的是 DocBook DTD 的 XML 变体,而不是 SGML 变体。
- DocBook XSL Stylesheets #
它们包含将 DocBook 源文件转换成其他格式(例如 HTML)的处理指令。
当前要求的最低版本是 1.77.0,但建议使用最新可用版本以获得最佳效果。
- Libxml2,用于
xmllint# 这个库及其所含的
xmllint工具用于处理 XML。许多开发者可能已经安装了 Libxml2,因为构建 PostgreSQL 代码时也会用到它。不过请注意,xmllint可能需要通过单独的子包安装。- Libxslt,用于
xsltproc# xsltproc是一个 XSLT 处理器,也就是使用 XSLT 样式表把 XML 转换成其他格式的程序。- FOP #
这是一个可将 XML 转换成 PDF 等格式的程序。只有在你希望构建 PDF 格式文档时才需要它。
我们已经记录了多种安装处理文档所需工具的方法,下面将加以介绍。这些工具也可能还有其他打包发行形式。请将软件包状态报告到文档邮件列表,我们会把这些信息补充到这里。
J.2.1. 在 Fedora、RHEL 及其衍生版上安装 #
要安装所需的软件包,请使用:
yum install docbook-dtds docbook-style-xsl libxslt fop
J.2.2. 在 FreeBSD 上安装 #
要用 pkg 安装所需的软件包,请使用:
pkg install docbook-xml docbook-xsl libxslt fop
从 doc 目录构建文档时,你需要使用 gmake,因为所提供的 makefile 不适用于 FreeBSD 的 make。
J.2.3. Debian 软件包 #
Debian GNU/Linux 提供了这套文档工具的完整软件包。要安装,只需使用:
apt-get install docbook-xml docbook-xsl libxml2-utils xsltproc fop
J.2.4. macOS #
如果你使用 MacPorts,执行以下命令即可完成设置:
sudo port install docbook-xml docbook-xsl-nons libxslt fop
如果你使用 Homebrew,请使用:
brew install docbook docbook-xsl libxslt fop
Homebrew 提供的程序要求设置下列环境变量。对于基于 Intel 的机器,请使用:
export XML_CATALOG_FILES=/usr/local/etc/xml/catalog
对于基于 Apple Silicon 的机器,请使用:
export XML_CATALOG_FILES=/opt/homebrew/etc/xml/catalog
否则,xsltproc 会抛出如下错误:
I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd postgres.sgml:21: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" ...
虽然可以使用 Apple 提供的 xmllint 和 xsltproc,而不使用 MacPorts 或 Homebrew 提供的版本,但你仍然需要安装 DocBook DTD 和样式表,并设置一个指向它们的 catalog 文件。
J.2.5. 通过 configure 检测 #
在构建文档之前,你需要运行 configure 脚本,就像构建
PostgreSQL 程序本身时那样。检查运行接近结尾处的输出;它应该大致如下:
checking for xmllint... xmllint checking for xsltproc... xsltproc checking for fop... fop checking for dbtoepub... dbtoepub
如果找不到 xmllint 或 xsltproc,你就无法构建任何文档。fop 仅在构建 PDF 格式文档时需要。dbtoepub 仅在构建 EPUB 格式文档时需要。
如有必要,你可以告诉 configure 到哪里查找这些程序,例如:
./configure ... XMLLINT=/opt/local/bin/xmllint ...
如果你更愿意使用 Meson 构建 PostgreSQL,则请按说明运行
meson setup(见第 17.4 节),然后参见第 J.4 节。