pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
我们记录了处理文档所需各种工具的三种安装方法的 经验。第一种是在 Linux 上从 RPM 安装,第二种是从 FreeBSD port 安装,最后一种是从各工具的原始发行包 进行通用安装。下面将分别 介绍。
这些工具可能还有其他打包发行形式。请把软件包状态报告到 docs 邮件列表,我们会把相关信息收录在这里。
对 RedHat 兼容的 Linux 系统来说,最简单的安装 方式是使用 Cygnus 的 Mark Galassi 开发的 RPM 集。也可以像后面一节描述的那样从源码 安装。
安装 RPM
安装 Jade 及相关软件包的 RPM。
安装 Norm Walsh 的最新样式表。视 RPM 的新旧程度而定,最新样式表可能比 RPM 中包含的有显著改进。
更新你的 src/Makefile.custom,加入 指向样式表的 HSTYLE 和 PSTYLE 定义。
FreeBSD 上有一整套文档工具的 ports。事实上,postgresql.org ——文档每天晚上都会自动更新的那台机器——就是一台 FreeBSD 机器。
安装 FreeBSD Ports
要在 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
设置环境变量以访问 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 请作相应调整。)
make 需要一些特殊参数,或者把它们加入你的 Makefile.custom:
HSTYLE=/usr/local/share/sgml/docbook/dsssl/modular/html/
PSTYLE=/usr/local/share/sgml/docbook/dsssl/modular/print/
当然,构建时你需要使用 gmake 而不是普通的 “make”。
Debian 有一整套文档工具的 软件包。
安装 Debian 软件包
安装 jade、docbook 和 unzip:
apt-get install jade
apt-get install docbook
apt-get install docbook-stylesheets
安装最新的样式表。
确认已安装 unzip,或安装 该软件包:
apt-get install unzip
从 http://www.nwalsh.com/docbook/dsssl 抓取最新的样式表 zip 包,并解压到某个位置(可以是 /usr/share)。
编辑 src/Makefile.custom,加入适当的 HSTYLE 和 PSTYLE 定义:
HSTYLE= /usr/share/docbook/html
PSTYLE= /usr/share/docbook/print
这里简要过一遍获取和安装软件的过程,你需要这些软件来用 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 样式表。下面说明如何单独安装这些工具。
你需要:
一个可用的 GCC 2.7.2 安装
一个可用的 Emacs 19.19 或更高版本安装
一个 Unix 的 unzip 程序用来解包
你必须获取:
James Clark 的 Jade (撰写本文时,jade1_1.zip 中的 1.1 版是当前版本)
Norman Walsh 的 Modular Stylesheets (最初生成这些文档时使用的是 1.19 版)
Lennart Staflin 的 PSGML (撰写本文时,psgml-1.0.1.tar.gz 中的 1.0.1 版可用)
重要 URL:
安装 Jade
阅读上面列出的 URL 处的安装说明。
把发行包解压到一个合适的位置。使用的 命令大致是
unzip -aU jade1_1.zip
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 中的原样。
输入 make 构建 Jade 和各种 SP 工具。
软件构建完成后,make install 会 完成显而易见的那一步。
安装 DocBook DTD 工具包
你会想把构成 DocBook DTD 工具包的文件放在 你构建 Jade 时让它查找的 目录中;如果你遵循了上面的建议,那就是 /usr/local/share/sgml/。除了 DocBook 实际文件外,你还需要放好一个 catalog 文件,用于把 文档类型规范和外部实体引用映射到该目录中的实际 文件。你还需要 ISO 字符集映射,可能还有一或多个版本的 HTML。
安装各种 DTD 和 支持文件并建立 catalog 文件的一种 办法是,把它们全部收进上面提到的目录,用一个名为 CATALOG 的文件描述它们全部,然后 创建文件 catalog 作为指向前者的 catalog 指针,给它这样一行内容:
CATALOG /usr/local/share/sgml/CATALOG
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
当然,包含这些内容的文件随 DocBook 工具包一起提供。注意 这些行每行的最后一项都是文件名,这里没有带路径。 你当然可以把文件放在主 SGML 目录的子目录中,并修改 CATALOG 文件中的引用。 DocBook 还引用 ISO 字符集实体,所以你需要获取 并安装它们(它们可从多个来源获得,通过上面列出的 URL 很容易找到),并为它们全部配上 catalog 条目,例如:
PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN" ISO/ISOlat1
注意这里的文件名包含目录名,表明 我们把 ISO 实体文件放在了名为 ISO 的子目录中。同样,你获取的 实体包应附带正确的 catalog 条目。
安装 Norman Walsh 的 DSSSL 样式表
阅读上面列出的 URL 处的安装说明。
要安装 Norman 的样式表,只需把发行包 解压到合适的位置。一个合适的位置是 /usr/local/share,这会把工具包放到 /usr/local/share/docbook 目录树 下。命令大致是
unzip -aU db119.zip
测试安装的一种办法是构建 PostgreSQL 用户指南 的 HTML 和 RTF 形式。
要构建 HTML 文件, 进入 SGML 源 目录 doc/src/sgml,执行
jade -t sgml -d /usr/local/share/docbook/html/docbook.dsl -D ../graphics postgres.sgml
book1.htm 是输出的顶层节点。。
要生成可导入你喜欢的字处理系统并打印的 RTF 输出,输入:
jade -t rtf -d /usr/local/share/docbook/print/docbook.dsl -D ../graphics postgres.sgml
安装 PSGML
阅读上面列出的 URL 处的安装说明。
解开发行文件,运行 configure、make 和 make install,把字节编译文件和 info 库放到 位置。
然后把以下几行加入你的 /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)
如果你想在编辑 HTML 时也使用 PSGML,还要加上:
(setq auto-mode-alist
(cons '("\\.s?html?\\'" . sgml-mode) auto-mode-alist))
使用 PSGML 有一点需要注意: 它的作者假定你的主 SGML DTD 目录是 /usr/local/lib/sgml。如果像本章示例 中那样使用 /usr/local/share/sgml,你 就必须对此作出补偿。
你可以设置 SGML_CATALOG_FILES 环境变量。
你可以 定制你的 PSGML 安装(它的 手册说明了方法)。
你甚至可以在编译和安装 PSGML 之前编辑源文件 psgml.el,把硬编码的路径改成 你自己的默认值。
如果你愿意,还可以安装 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 可以用更大的数据结构尺寸 编译。具体细节因安装而异。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。