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 维护。
xsltproc这是与 XSLT 样式表配合使用的处理工具(就像jade是与 DSSSL 样式表配合使用的处理工具一样)。
如果你愿意,还可以安装JadeTeX,用 TeX作为Jade的格式化后端。 JadeTeX可以创建 PostScript 或 PDF文件(后者带书签)。
不过,JadeTeX的输出质量不如 RTF后端。问题特别多的地方是表格,以及各种 垂直和水平间距的瑕疵。另外,也没有机会对结果进行手工润色。
我们已经记录了多种安装处理文档所需工具的方法,下面将加以介绍。 这些工具也可能还有其他打包发行形式。请将软件包状态报告到文档邮件列表, 我们会把这些信息补充到这里。
大多数发行版厂商都在其发行版中提供了用于 DocBook 处理的完整 RPM 集合。安装时 查找“SGML”选项,或者查找下列软件包: sgml-common、docbook、 stylesheets、openjade (或 jade)。可能还需要 sgml-tools 以及 xsltproc 或 libxslt。如果你的 发行版厂商没有提供这些软件包,那么应该可以使用其他足够兼容的厂商提供的软件包。
FreeBSD Documentation Project 本身就大量使用 DocBook,因此 FreeBSD 提供了完整的文档工具“ports”也就不足为奇了。要在 FreeBSD 上构建文档,需要安装以下 ports。
textproc/sp
textproc/openjade
textproc/docbook-xsl
textproc/iso8879
textproc/libxslt
有可能 ports 没有更新 /usr/local/share/sgml/catalog.ports 中的主 catalog 文件, 或者其中顺序不正确。请确保该文件开头包含以下几行:
CATALOG "openjade/catalog" CATALOG "iso8879/catalog" CATALOG "docbook/dsssl/modular/catalog" CATALOG "docbook/4.2/catalog"
如果不想编辑该文件,也可以把环境变量 SGML_CATALOG_FILES 设置为 以冒号分隔的 catalog 文件列表(例如上面那些)。
/usr/ports/print 中的一些内容 (tex、jadetex)可能也值得安装。
更多关于 FreeBSD 文档工具的信息,请参阅FreeBSD Documentation Project 的说明。
完整的文档工具软件包也适用于Debian GNU/Linux。只需使用以下命令即可安装:
apt-get install docbook docbook-dsssl docbook-xsl 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 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。