pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
一般来说,现代的 Unix 兼容平台应该能够运行 PostgreSQL。发布时经过具体测试的平台列于下方 第 15.6 节。发行包的 doc 子目录中有若干平台特定的 FAQ 文档,遇到问题时可以查阅。
构建 PostgreSQL 需要下列软件包:
需要 GNU make 3.80 或更高版本; 其他 make 程序或较旧版本的 GNU make 都 无法工作。GNU make 通常以 gmake 这个名字安装;本文档将始终以该名称称呼它。(在某些系统上, GNU make 是名为 make 的默认工具。)要检查是否为 GNU make,请输入:
gmake --version
你需要一个 ISO/ANSI C 编译器(至少符合 C89)。推荐使用较新的 GCC 版本,不过已知 PostgreSQL 也可以使用来自不同厂商的多种编译器构建。
需要 tar 来解开源代码发布包,此外还需要 gzip 或 bzip2 之一。
默认使用 GNU Readline 库。 它可以让 psql(PostgreSQL 命令行 SQL 解释器) 记住你输入的每一条命令,并允许你使用方向键回忆和编辑此前的命令。 这非常有用,强烈推荐。如果你不想使用它,则必须给 configure 指定 --without-readline 选项。作为替代方案,你通常也可以使用 BSD 许可的 libedit 库,它最初是在 NetBSD 上开发的。 libedit 库与 GNU Readline 兼容;如果找不到 libreadline,或者在 configure 中使用了 --with-libedit-preferred 选项,就会使用它。如果你使用的是 基于软件包的 Linux 发行版,请注意,如果你的发行版把它们拆成单独的软件包, 那么需要同时安装 readline 和 readline-devel。
默认使用 zlib 压缩库。如果你不想使用它, 则必须给 configure 指定 --without-zlib 选项。使用这个选项将禁用 pg_dump 和 pg_restore 对压缩归档的支持。
下列软件包是可选的。默认配置不需要它们,但在启用某些构建选项时会用到, 如下所述:
要构建服务器端编程语言 PL/Perl, 你需要一个完整的 Perl 安装, 包括 libperl 库和头文件。 最低要求版本是 Perl 5.8.3。 由于 PL/Perl 是一个共享库,在大多数平台上, libperl 也必须是共享库。这在较新的 Perl 版本中似乎是默认行为,但在更早版本中并非如此; 无论如何,这取决于你所在环境中安装 Perl 的人是如何选择的。 如果你打算不仅仅是偶尔使用 PL/Perl, 应确保 Perl 安装是在启用了 usemultiplicity 选项的情况下构建的 (perl -V 会显示这一点)。
如果你没有共享库但需要一个,PostgreSQL 构建期间会出现类似下面的消息来指出这一事实:
*** Cannot build PL/Perl because libperl is not a shared library. *** You might have to rebuild your Perl installation. Refer to *** the documentation for details.
(如果你没有留意屏幕输出,你只会注意到 PL/Perl 库对象 plperl.so 或类似文件没有被安装。) 如果看到这条消息,你就必须手动重新构建并安装 Perl,才能构建 PL/Perl。在配置 Perl 时,请要求生成共享库。
要构建 PL/Python 服务器端编程语言,你需要带有头文件以及 distutils 模块的 Python 安装。最低要求版本是 Python 2.3。支持 3.1 及更高版本的 Python 3;但使用 Python 3 时请参见 第 43.1 节。
由于 PL/Python 是一个共享库,在大多数平台上, libpython 也必须是共享库。默认的 Python 安装并非如此。如果在构建并安装 PostgreSQL 之后,你得到了一个名为 plpython.so 的文件(扩展名可能不同), 那么一切正常。否则,你应该会看到类似下面的一闪而过的通知:
*** Cannot build PL/Python because libpython is not a shared library. *** You might have to rebuild your Python installation. Refer to *** the documentation for details.
这意味着你必须重新构建(部分)Python 安装来创建这个共享库。
如果遇到问题,请在 Python 2.3 或更高版本的 configure 中使用 --enable-shared 标志。在某些 操作系统上,你不必构建共享库,但你必须让 PostgreSQL 构建系统相信这一点。详情请查阅 src/pl/plpython 目录中的 Makefile。
要构建 PL/Tcl 过程语言,你当然需要安装 Tcl。如果你使用的是 8.4 之前的 Tcl 版本,请确保它构建时没有启用多线程支持。
要启用本地语言支持(NLS),也就是以非英语语言显示程序消息的能力,你需要一个 Gettext API 的实现。某些操作系统已内置此功能(例如 Linux、NetBSD、Solaris);对于其他系统,你可以从 http://www.gnu.org/software/gettext/ 下载附加软件包。如果你使用的是 GNU C 库中的 Gettext 实现,那么还需要 GNU Gettext 软件包来提供某些实用程序。如果使用其他实现,则不需要它。
如果你希望支持使用这些服务进行认证或加密,就需要 Kerberos、OpenSSL、OpenLDAP 和/或 PAM。
构建 PostgreSQL 文档另有一组要求;参见 第 J.2 节。
如果你从 Git 树构建,而不是使用已发布的源码包,或者你要进行服务器开发,还需要以下软件包:
如果需要获取 GNU 软件包,可以从本地的 GNU 镜像站点获取(站点列表见 http://www.gnu.org/order/ftp.html),或者从 ftp://ftp.gnu.org/gnu/ 获取。
还要检查磁盘空间是否充足。编译期间,源码树需要约 100 MB,安装目录需要约 20 MB。空数据库集簇约占 35 MB;数据库所需空间大约是存储相同数据的纯文本文件的五倍。如果要运行回归测试,还会临时额外需要最多 150 MB。使用 df 命令检查可用磁盘空间。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。