↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.0 / 6.5
历史版本。 PostgreSQL 7.0 已结束支持。 请参阅 当前版本手册.

DG2.7. 工具集

我们记录了处理文档所需各种工具的三种安装方法的经验。第一种是在 Linux 上从 RPM 安装,第二种是从 FreeBSD port 安装,最后一种是从各工具的原始发行包进行通用安装。下面将分别介绍。

这些工具可能还有其他打包发行形式。请把软件包状态报告到 docs 邮件列表,我们会把相关信息收录在这里。

DG2.7.1. Linux RPM 安装

对 RedHat 兼容的 Linux 系统来说,最简单的安装方式是使用 Cygnus 的 Mark Galassi 开发的 RPM 集。也可以像后面一节描述的那样从源码安装。

安装 RPM

  1. 安装 Jade 及相关软件包的 RPM。

  2. 安装 Norm Walsh 的最新样式表。视 RPM 的新旧程度而定,最新样式表可能比 RPM 中包含的有显著改进。

  3. 更新你的 src/Makefile.custom,加入指向样式表的 HSTYLE 和 PSTYLE 定义。

DG2.7.2. FreeBSD 安装

FreeBSD 上有一整套文档工具的 ports。事实上,postgresql.org ——文档每天晚上都会自动更新的那台机器——就是一台 FreeBSD 机器。

安装 FreeBSD Ports

  1. 要在 FreeBSD 上构建文档,需要安装若干 ports。

    % cd /usr/ports/devel/gmake && make install
    % cd /usr/ports/textproc/docproj && make install
    % cd /usr/ports/textproc/docbook && make install
    % cd /usr/ports/textproc/dsssl-docbook-modular && make install
          

  2. 设置环境变量以访问 jade 工具集。

    注意

    在 postgresql.org 的 FreeBSD 机器上并不需要这一步,所以你可能不必这么做。

    export SMGL_ROOT=/usr/local/share/sgml
    SGML_CATALOG_FILES=/usr/local/share/sgml/jade/catalog
    SGML_CATALOG_FILES=/usr/local/share/sgml/html/catalog:$SGML_CATALOG_FILES
    SGML_CATALOG_FILES=/usr/local/share/sgml/iso8879/catalog:$SGML_CATALOG_FILES
    SGML_CATALOG_FILES=/usr/local/share/sgml/transpec/catalog:$SGML_CATALOG_FILES
    SGML_CATALOG_FILES=/usr/local/share/sgml/docbook/catalog:$SGML_CATALOG_FILES
    export SGML_CATALOG_FILES
          

    (这是 sh/bash 语法;csh/tcsh 请作相应调整。)

  3. make 需要一些特殊参数,或者把它们加入你的 Makefile.custom:

    HSTYLE=/usr/local/share/sgml/docbook/dsssl/modular/html/
    PSTYLE=/usr/local/share/sgml/docbook/dsssl/modular/print/
          

    当然,构建时你需要使用 gmake 而不是普通的“make”。

DG2.7.3. Debian 安装

Debian 有一整套文档工具的软件包。

安装 Debian 软件包

  1. 安装 jade、docbook 和 unzip:

    apt-get install jade
    apt-get install docbook
    apt-get install docbook-stylesheets
          

  2. 安装最新的样式表。

    1. 确认已安装 unzip,或安装该软件包:

      apt-get install unzip
      	

    2. 从 http://www.nwalsh.com/docbook/dsssl 抓取最新的样式表 zip 包,并解压到某个位置(可以是 /usr/share)。

  3. 编辑 src/Makefile.custom,加入适当的 HSTYLE 和 PSTYLE 定义:

    HSTYLE= /usr/share/docbook/html
    PSTYLE= /usr/share/docbook/print
          

DG2.7.4. 手动安装工具

这里简要过一遍获取和安装软件的过程,你需要这些软件来用 Emacs 编辑 DocBook 源码,并用 Norman Walsh 的 DSSSL 样式表处理它,生成 HTML 和 RTF。

获取 SGML 和 DocBook 工具最简单的方法,可能是从 sgmltools 获取 sgmltools。sgmltools 需要 GNU 版本的 m4。要确认你有正确的 m4 版本可用,试试

gnum4 --version
    

如果你安装 GNU m4,用 gnum4 这个名字安装,sgmltools 就会找到它。安装之后,你将拥有 sgmltools、jade 和 Norm Walsh 的 DocBook 样式表。下面说明如何单独安装这些工具。

DG2.7.4.1. 先决条件

你需要:

  • 一个可用的 GCC 2.7.2 安装

  • 一个可用的 Emacs 19.19 或更高版本安装

  • 一个 Unix 的 unzip 程序用来解包

你必须获取:

重要 URL:

DG2.7.4.2. 安装 Jade

安装 Jade

  1. 阅读上面列出的 URL 处的安装说明。

  2. 把发行包解压到一个合适的位置。使用的命令大致是

    unzip -aU jade1_1.zip
           

  3. Jade 不是用 GNU autoconf 构建的,所以你需要自己编辑 Makefile。既然 James Clark 已经为此准备好了他的套件,一个好办法是在 Jade 发行包的主目录下建一个构建目录(也许以你的机器架构命名),把主目录中的 Makefile 文件复制进去,在那里编辑它,然后在那里运行 make。

    不过,Makefile 确实需要编辑。主目录中有一个名为 Makefile.jade 的文件,构建 Jade(而不是构建 Jade 所基于的 SGML 解析器套件 SP)时,可以用 make -f Makefile.jade 来使用它。不过我们建议你不要那样做,因为需要修改的内容超出了 Makefile.jade 的范围,反正你也得编辑其中某一个。

    通读 Makefile,阅读 James 的说明并按需编辑。有若干变量需要设置。下面收集汇总了最重要的一些变量及其典型值:

    prefix = /usr/local
    XDEFINES = -DSGML_CATALOG_FILES_DEFAULT=\"/usr/local/share/sgml/catalog\"
    XLIBS = -lm
    RANLIB = ranlib
    srcdir = ..
    XLIBDIRS = grove spgrove style
    XPROGDIRS = jade
           

    注意其中指定了查找 SGML 支持文件默认 catalog 的位置 —— 你可能想把它改成更适合你自己安装的值。如果你的系统不需要上面这些数学库和 ranlib 命令的设置,就让它们保持 Makefile 中的原样。

  4. 输入 make 构建 Jade 和各种 SP 工具。

  5. 软件构建完成后,make install 会完成显而易见的那一步。

DG2.7.4.3. 安装 DocBook DTD 工具包

安装 DocBook DTD 工具包

  1. 你会想把构成 DocBook DTD 工具包的文件放在你构建 Jade 时让它查找的目录中;如果你遵循了上面的建议,那就是 /usr/local/share/sgml/。除了 DocBook 实际文件外,你还需要放好一个 catalog 文件,用于把文档类型规范和外部实体引用映射到该目录中的实际文件。你还需要 ISO 字符集映射,可能还有一或多个版本的 HTML。

    安装各种 DTD 和支持文件并建立 catalog 文件的一种办法是,把它们全部收进上面提到的目录,用一个名为 CATALOG 的文件描述它们全部,然后创建文件 catalog 作为指向前者的 catalog 指针,给它这样一行内容:

    CATALOG /usr/local/share/sgml/CATALOG
           

  2. CATALOG 文件随后应包含三类行。第一类是(可选的)SGML 声明,即:

    SGMLDECL docbook.dcl
           

    接下来,对 DTD 和实体文件的各项引用必须解析。对于 DocBook 文件,这些行看起来像这样:

    PUBLIC "-//Davenport//DTD DocBook V3.0//EN" docbook.dtd
    PUBLIC "-//USA-DOD//DTD Table Model 951010//EN" cals-tbl.dtd
    PUBLIC "-//Davenport//ELEMENTS DocBook Information Pool V3.0//EN" dbpool.mod
    PUBLIC "-//Davenport//ELEMENTS DocBook Document Hierarchy V3.0//EN" dbhier.mod
    PUBLIC "-//Davenport//ENTITIES DocBook Additional General Entities V3.0//EN" dbgenent.mod
           

  3. 当然,包含这些内容的文件随 DocBook 工具包一起提供。注意这些行每行的最后一项都是文件名,这里没有带路径。你当然可以把文件放在主 SGML 目录的子目录中,并修改 CATALOG 文件中的引用。DocBook 还引用 ISO 字符集实体,所以你需要获取并安装它们(它们可从多个来源获得,通过上面列出的 URL 很容易找到),并为它们全部配上 catalog 条目,例如:

    PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN" ISO/ISOlat1
           

    注意这里的文件名包含目录名,表明我们把 ISO 实体文件放在了名为 ISO 的子目录中。同样,你获取的实体包应附带正确的 catalog 条目。

DG2.7.4.4. 安装 Norman Walsh 的 DSSSL 样式表

安装 Norman Walsh 的 DSSSL 样式表

  1. 阅读上面列出的 URL 处的安装说明。

  2. 要安装 Norman 的样式表,只需把发行包解压到合适的位置。一个合适的位置是 /usr/local/share,这会把工具包放到 /usr/local/share/docbook 目录树下。命令大致是

    unzip -aU db119.zip
           

  3. 测试安装的一种办法是构建 PostgreSQL 用户指南的 HTML 和 RTF 形式。

    1. 要构建 HTML 文件,进入 SGML 源目录 doc/src/sgml,执行

      jade -t sgml -d /usr/local/share/docbook/html/docbook.dsl -D ../graphics postgres.sgml
      	 

      book1.htm 是输出的顶层节点。。

    2. 要生成可导入你喜欢的字处理系统并打印的 RTF 输出,输入:

      jade -t rtf -d /usr/local/share/docbook/print/docbook.dsl -D ../graphics postgres.sgml
      	 

DG2.7.4.5. 安装 PSGML

安装 PSGML

  1. 阅读上面列出的 URL 处的安装说明。

  2. 解开发行文件,运行 configure、make 和 make install,把字节编译文件和 info 库放到位置。

  3. 然后把以下几行加入你的 /usr/local/share/emacs/site-lisp/site-start.el 文件,让 Emacs 在需要时正确载入 PSGML:

    (setq load-path
          (cons "/usr/local/share/emacs/site-lisp/psgml" load-path))
    (autoload 'sgml-mode "psgml" "Major mode to edit SGML files." t)
           

  4. 如果你想在编辑 HTML 时也使用 PSGML,还要加上:

    (setq auto-mode-alist
          (cons '("\\.s?html?\\'" . sgml-mode) auto-mode-alist))
           

  5. 使用 PSGML 有一点需要注意:它的作者假定你的主 SGML DTD 目录是 /usr/local/lib/sgml。如果像本章示例中那样使用 /usr/local/share/sgml,你就必须对此作出补偿。

    1. 你可以设置 SGML_CATALOG_FILES 环境变量。

    2. 你可以定制你的 PSGML 安装(它的手册说明了方法)。

    3. 你甚至可以在编译和安装 PSGML 之前编辑源文件 psgml.el,把硬编码的路径改成你自己的默认值。

DG2.7.4.6. 安装 JadeTeX

如果你愿意,还可以安装 JadeTeX,用 TeX 作为 Jade 的格式化后端。注意它仍是相当粗糙的软件,生成的打印输出不如 RTF 后端的质量。不过它仍然工作得不错,尤其是对不使用表格的较简单文档而言;而且由于 JadeTeX 和样式表都在持续改进,它将来肯定会越来越好。

要安装和使用 JadeTeX,你需要可用的 TeX 和 LaTeX2e 安装,包括受支持的 tools 和 graphics 宏包、Babel、AMS 字体和 AMS-LaTeX、PSNFSS扩展及“35 种字体”配套包、用于生成 PostScript 的 dvips 程序、宏包 fancyhdr、hyperref、minitoc、url 和 ot2enc,当然还有 JadeTeX 本身。所有这些都可以在邻近的 CTAN 站点找到。

JadeTeX 在撰写本文时并没有附带多少安装指南,但有一个 makefile 展示了需要什么。它还包含一个 cooked 目录,你会在其中找到它所需的部分宏包 —— 但不是全部,也不完整,至少我们上次查看时是这样。

在构建 jadetex.fmt 格式文件之前,你可能需要编辑 jadetex.ltx 文件,把 Babel 的配置改为适合你所在地区的形式。要改的那一行看起来像

\RequirePackage[german,french,english]{babel}[1997/01/23]
     

显然,你应该只列出你确实需要、并且已为 Babel 配置好的语言。

JadeTeX 可用后,你就应该能为 PostgreSQL 手册生成并排版 TeX 输出,办法是(如上所述,在 doc/src/sgml 目录中)给出命令

jade -t tex -d /usr/local/share/docbook/print/docbook.dsl -D ../graphics postgres.sgml
jadetex postgres.tex
jadetex postgres.tex
dvips postgres.dvi
     

当然,这样做时,TeX 会在第二轮运行中停下来,并告诉你它的容量已被超出。就我们所知,这是 JadeTeX 生成交叉引用信息的方式造成的。当然,TeX 可以用更大的数据结构尺寸编译。具体细节因安装而异。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.