pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
以下工具用于处理文档。其中一些可能是可选的,具体见说明。
这是 DocBook 自身的定义。我们当前使用 4.2 版;不能使用更高或更低的版本。你需要 DocBook DTD 的SGML变体,但要构建手册页,还需要同一版本的XML变体。
DocBook 需要这些实体,但由于它们由 ISO 维护,因此单独分发。
它们包含将 DocBook 源文件转换成其他格式(例如 HTML)的处理指令。
这是另一种将 DocBook 转换为其他格式的样式表。我们目前用它生成手册页,以及可选的 HTMLHelp。你也可以用这套工具链生成 HTML 或 PDF 输出,但 PostgreSQL 官方发行版为此使用 DSSSL 样式表。
当前要求的最低版本是 1.74.0。
这是处理 SGML 的基础软件包。它包含一个SGML解析器、一个DSSSL处理器(即使用 DSSSL 样式表将SGML转换为其他格式的程序),以及若干相关工具。Jade现在由 OpenJade 小组维护,而不再由 James Clark 维护。
xmllint这个库及其所含的xmllint工具用于处理 XML。许多开发者可能已经安装了 Libxml2,因为构建 PostgreSQL 代码时也会用到它。不过请注意, xmllint可能需要通过单独的子包安装。
xsltproc这是与 XSLT 样式表配合使用的处理工具(就像jade是与 DSSSL 样式表配合使用的处理工具一样)。
如果你愿意,还可以安装JadeTeX,用 TeX作为Jade的格式化后端。 JadeTeX可以创建 PostScript 或 PDF文件(后者带书签)。
不过,JadeTeX的输出质量不如 RTF后端。问题特别多的地方是表格,以及各种 垂直和水平间距的瑕疵。另外,也没有机会对结果进行手工润色。
我们已经记录了多种安装处理文档所需工具的方法,下面将加以介绍。 这些工具也可能还有其他打包发行形式。请将软件包状态报告到文档邮件列表, 我们会把这些信息补充到这里。
要安装所需软件包,请使用:
yum install docbook-dtds docbook-style-dsssl docbook-style-xsl libxslt openjade
FreeBSD Documentation Project 本身就大量使用 DocBook,因此 FreeBSD 提供了完整的文档工具“ports”也就不足为奇了。要在 FreeBSD 上构建文档,需要安装以下 ports。
textproc/docbook-sgml
textproc/docbook-xml
textproc/docbook-xsl
textproc/dsssl-docbook-modular
textproc/libxslt
textproc/openjade
/usr/ports/print 中的一些内容 (tex、jadetex)可能也值得安装。
更多关于 FreeBSD 文档工具的信息,请参阅FreeBSD Documentation Project 的说明。
完整的文档工具软件包也适用于Debian GNU/Linux。只需使用以下命令即可安装:
apt-get install docbook docbook-dsssl docbook-xsl libxml2-utils openjade1.3 opensp xsltproc
如果使用 MacPorts,以下命令即可完成配置:
sudo port install docbook-dsssl docbook-sgml-4.2 docbook-xml-4.2 docbook-xsl libxslt openjade opensp
手动安装 DocBook 工具的过程有些复杂,因此如果有预构建的软件包,就使用它们。这里只描述一种标准配置,使用合理且标准的安装路径,不使用任何“花哨”功能。有关细节,应查阅各软件包的文档,并阅读SGML入门资料。
OpenJade 的安装采用 GNU 风格的./configure; make; make install构建过程。详细信息可在 OpenJade 源码发行包中找到。简要来说:
./configure --enable-default-catalog=/usr/local/share/sgml/catalog make make install
务必记住“默认目录文件”的存放位置,后面会用到它。也可以不指定,但这样以后每次使用jade时,都必须设置环境变量SGML_CATALOG_FILES,使其指向该文件。(如果 OpenJade 已经安装,而你希望在本地安装工具链的其余部分,也可以采用这种方法。)
有用户报告,使用 OpenJade 1.4devel 构建 PDF 时会遇到段错误,并出现类似下面的消息:
openjade:./stylesheet.dsl:664:2:E: flow object not accepted by port; only display flow objects accepted make: *** [postgres-A4.tex-pdf] Segmentation fault
降级到 OpenJade 1.3 应该可以消除此错误。
此外,还应该把dsssl目录中的文件 dsssl.dtd、fot.dtd、 style-sheet.dtd和catalog 安装到某个位置,例如 /usr/local/share/sgml/dsssl。最简单的做法 可能是复制整个目录:
cp -R dsssl /usr/local/share/sgml
最后,创建文件 /usr/local/share/sgml/catalog,并向其中加入 这一行:
CATALOG "dsssl/catalog"
(这是对安装到步骤 2中的文件的相对路径引用。如果你选择了不同的安装布局,务必作相应调整。)
创建目录/usr/local/share/sgml/docbook-4.2并切换到该目录。(具体位置无关紧要,但这个位置在本文所采用的布局中是合理的。)
$mkdir /usr/local/share/sgml/docbook-4.2$cd /usr/local/share/sgml/docbook-4.2
解压归档包:
$unzip -a ...../docbook-4.2.zip
(归档包会将文件解压到当前目录。)
编辑文件/usr/local/share/sgml/catalog(或者安装时告诉 jade 的其他位置),并加入类似下面的一行:
CATALOG "docbook-4.2/docbook.cat"
下载ISO 8879 字符实体归档包,将其解压,然后把文件放入存放 DocBook 文件的同一目录:
$cd /usr/local/share/sgml/docbook-4.2$unzip ...../ISOEnts.zip
在包含 DocBook 和 ISO 文件的目录中运行以下命令:
perl -pi -e 's/iso-(.*).gml/ISO\1/g' docbook.cat
(这会修正 DocBook 目录文件中使用的名称与 ISO 字符实体文件的实际名称之间的混淆。)
要安装样式表,先解压发行包,再把它移到合适的位置,例如 /usr/local/share/sgml。(归档会自动创建一个 子目录。)
$gunzip docbook-dsssl-1.xx.tar.gz$tar -C /usr/local/share/sgml -xf docbook-dsssl-1.xx.tar
/usr/local/share/sgml/catalog 中通常的目录项 也可以加上:
CATALOG "docbook-dsssl-1.xx/catalog"
由于样式表变化相当频繁,而且有时尝试其他版本是有益的, PostgreSQL不使用这个目录项。关于如何改为选择 样式表,参见第 J.2.6 节。
要安装和使用JadeTeX,你需要可用的 TeX和LaTeX2e安装, 包括受支持的tools和 graphics宏包、Babel、 AMS 字体和 AMS-LaTeX、 PSNFSS扩展及 “35 种字体”配套包、用于生成 PostScript的dvips程序, 以及宏包fancyhdr、 hyperref、minitoc、 url和ot2enc。所有这些 都可以在邻近的 CTAN 站点上找到。 TeX基础系统的安装远远超出了本介绍的范围。 任何能运行TeX的系统都应该有可用的二进制软件包。
在将JadeTeX用于 PostgreSQL文档源之前,你需要增大 TeX内部数据结构的尺寸。相关细节可以在 JadeTeX的安装说明中找到。
完成之后,就可以安装JadeTeX:
$gunzip jadetex-xxx.tar.gz$tar xf jadetex-xxx.tar$cd jadetex$make install$mktexlsr
最后两条需要以root身份执行。
configure检测 #在构建文档之前,需要运行configure脚本,就像构建PostgreSQL程序本身时一样。检查运行即将结束时的输出,它应该类似于:
checking for onsgmls... onsgmls
checking for openjade... openjade
checking for DocBook V4.2... yes
checking for DocBook stylesheets... /usr/share/sgml/docbook/stylesheet/dsssl/modular
checking for collateindex.pl... /usr/bin/collateindex.pl
checking for xsltproc... xsltproc
checking for osx... osx
如果onsgmls和nsgmls都没有找到,后续一些测试会被跳过。nsgmls是 Jade 软件包的一部分。如果没有自动找到这些程序,可以向 configure 传递环境变量JADE和NSGMLS以指明它们的位置。如果没有找到“DocBook V4.2”,则说明 DocBook DTD 工具包没有安装到 Jade 能找到的位置,或者目录文件没有正确设置。请参阅上面的安装提示。DocBook 样式表会在若干个较为标准的位置中查找,但如果你把它们放在其他地方,则应该设置环境变量DOCBOOKSTYLE指向该位置,然后重新运行configure。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。