选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.3 已于 2018 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

J.2. 工具集 #

以下工具用于处理文档。其中一些可能是可选的,具体见说明。

DocBook DTD

这是 DocBook 自身的定义。我们当前使用 4.2 版;不能使用更高或更低的版本。你需要 DocBook DTD 的SGML变体,但要构建手册页,还需要同一版本的XML变体。

ISO 8879 字符实体

DocBook 需要这些实体,但由于它们由 ISO 维护,因此单独分发。

DocBook DSSSL Stylesheets

它们包含将 DocBook 源文件转换成其他格式(例如 HTML)的处理指令。

DocBook XSL Stylesheets

这是另一种将 DocBook 转换为其他格式的样式表。我们目前用它生成手册页,以及可选的 HTMLHelp。你也可以用这套工具链生成 HTML 或 PDF 输出,但 PostgreSQL 官方发行版为此使用 DSSSL 样式表。

当前要求的最低版本是 1.74.0。

OpenJade

这是处理 SGML 的基础软件包。它包含一个SGML解析器、一个DSSSL处理器(即使用 DSSSL 样式表将SGML转换为其他格式的程序),以及若干相关工具。Jade现在由 OpenJade 小组维护,而不再由 James Clark 维护。

Libxslt,用于xsltproc

这是与 XSLT 样式表配合使用的处理工具(就像jade是与 DSSSL 样式表配合使用的处理工具一样)。

JadeTeX

如果你愿意,还可以安装JadeTeX,用 TeX作为Jade的格式化后端。 JadeTeX可以创建 PostScript 或 PDF文件(后者带书签)。

不过,JadeTeX的输出质量不如 RTF后端。问题特别多的地方是表格,以及各种 垂直和水平间距的瑕疵。另外,也没有机会对结果进行手工润色。

我们已经记录了多种安装处理文档所需工具的方法,下面将加以介绍。 这些工具也可能还有其他打包发行形式。请将软件包状态报告到文档邮件列表, 我们会把这些信息补充到这里。

J.2.1. Linux RPM 安装

大多数发行版厂商都在其发行版中提供了用于 DocBook 处理的完整 RPM 集合。安装时 查找SGML选项,或者查找下列软件包: sgml-commondocbookstylesheetsopenjade (或 jade)。可能还需要 sgml-tools 以及 xsltproclibxslt。如果你的 发行版厂商没有提供这些软件包,那么应该可以使用其他足够兼容的厂商提供的软件包。

J.2.2. FreeBSD 安装

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 中的一些内容 (texjadetex)可能也值得安装。

更多关于 FreeBSD 文档工具的信息,请参阅FreeBSD Documentation Project 的说明

J.2.3. Debian 软件包

完整的文档工具软件包也适用于Debian GNU/Linux。只需使用以下命令即可安装:

apt-get install docbook docbook-dsssl docbook-xsl openjade1.3 opensp xsltproc

J.2.4. OS X

如果使用 MacPorts,以下命令即可完成配置:

sudo port install docbook-dsssl docbook-sgml-4.2 docbook-xml-4.2 docbook-xsl libxslt openjade opensp

J.2.5. 从源码手动安装

手动安装 DocBook 工具的过程有些复杂,因此如果有预构建的软件包,就使用它们。这里只描述一种标准配置,使用合理且标准的安装路径,不使用任何花哨功能。有关细节,应查阅各软件包的文档,并阅读SGML入门资料。

J.2.5.1. 安装 OpenJade

  1. 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 应该可以消除此错误。

  2. 此外,还应该把dsssl目录中的文件 dsssl.dtdfot.dtdstyle-sheet.dtdcatalog 安装到某个位置,例如 /usr/local/share/sgml/dsssl。最简单的做法 可能是复制整个目录:

    cp -R dsssl /usr/local/share/sgml
    
  3. 最后,创建文件 /usr/local/share/sgml/catalog,并向其中加入 这一行:

    CATALOG "dsssl/catalog"
    

    (这是对安装到步骤 2中的文件的相对路径引用。如果你选择了不同的安装布局,务必作相应调整。)

J.2.5.2. 安装DocBook DTD工具包

  1. 获取DocBook V4.2 发行包

  2. 创建目录/usr/local/share/sgml/docbook-4.2并切换到该目录。(具体位置无关紧要,但这个位置在本文所采用的布局中是合理的。)

    $ mkdir /usr/local/share/sgml/docbook-4.2
    $ cd /usr/local/share/sgml/docbook-4.2
    
  3. 解压归档包:

    $ unzip -a ...../docbook-4.2.zip
    

    (归档包会将文件解压到当前目录。)

  4. 编辑文件/usr/local/share/sgml/catalog(或者安装时告诉 jade 的其他位置),并加入类似下面的一行:

    CATALOG "docbook-4.2/docbook.cat"
    
  5. 下载ISO 8879 字符实体归档包,将其解压,然后把文件放入存放 DocBook 文件的同一目录:

    $ cd /usr/local/share/sgml/docbook-4.2
    $ unzip ...../ISOEnts.zip
    
  6. 在包含 DocBook 和 ISO 文件的目录中运行以下命令:

    perl -pi -e 's/iso-(.*).gml/ISO\1/g' docbook.cat
    

    (这会修正 DocBook 目录文件中使用的名称与 ISO 字符实体文件的实际名称之间的混淆。)

J.2.5.3. 安装 DocBook DSSSL 样式表

要安装样式表,先解压发行包,再把它移到合适的位置,例如 /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 节

J.2.5.4. 安装JadeTeX

要安装和使用JadeTeX,你需要可用的 TeXLaTeX2e安装, 包括受支持的toolsgraphics宏包、BabelAMS 字体AMS-LaTeXPSNFSS扩展及 35 种字体配套包、用于生成 PostScriptdvips程序, 以及宏包fancyhdrhyperrefminitocurlot2enc。所有这些 都可以在邻近的 CTAN 站点上找到。 TeX基础系统的安装远远超出了本介绍的范围。 任何能运行TeX的系统都应该有可用的二进制软件包。

在将JadeTeX用于 PostgreSQL文档源之前,你需要增大 TeX内部数据结构的尺寸。相关细节可以在 JadeTeX的安装说明中找到。

完成之后,就可以安装JadeTeX

$ gunzip jadetex-xxx.tar.gz
$ tar xf jadetex-xxx.tar
$ cd jadetex
$ make install
$ mktexlsr

最后两条需要以root身份执行。

J.2.6. 通过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

如果onsgmlsnsgmls都没有找到,后续一些测试会被跳过。nsgmls是 Jade 软件包的一部分。如果没有自动找到这些程序,可以向 configure 传递环境变量JADENSGMLS以指明它们的位置。如果没有找到DocBook V4.2,则说明 DocBook DTD 工具包没有安装到 Jade 能找到的位置,或者目录文件没有正确设置。请参阅上面的安装提示。DocBook 样式表会在若干个较为标准的位置中查找,但如果你把它们放在其他地方,则应该设置环境变量DOCBOOKSTYLE指向该位置,然后重新运行configure

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。