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

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.1 已于 2016 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

I.2. 工具集 #

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

DocBook DTD

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

ISO 8879 character entities

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

DocBook DSSSL Stylesheets

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

DocBook XSL Stylesheets

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

OpenJade

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

Libxslt for xsltproc

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

JadeTeX

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

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

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

I.2.1. Linux RPM 安装

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

I.2.2. FreeBSD 安装

FreeBSD Documentation Project 本身就大量使用 DocBook,因此 FreeBSD 提供了完整的文档工具ports也就不足为奇了。要在 FreeBSD 上构建文档,需要安装以下 ports。

  • textproc/sp

  • textproc/openjade

  • textproc/docbook-xsl

  • textproc/docbook-xsl

  • textproc/libxslt

/usr/ports/print 中的一些内容 (texjadetex) 可能也值得安装。

有可能 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 文件列表(例如上面那些)。

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

I.2.3. Debian 软件包

Debian GNU/Linux 提供了一整套文档工具的软件包。要安装,只需使用:

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

I.2.4. 从源码手动安装

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

I.2.4.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中的文件的相对路径引用。如果你选择了不同的安装布局,务必作相应调整。)

I.2.4.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 字符实体文件的实际名称之间的混淆。)

I.2.4.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不使用这个目录项。关于如何改为选择 样式表,参见第 I.2.5 节

I.2.4.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身份执行。

I.2.5. 通过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 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。