一般来说,现代的 Unix 兼容平台应该能够运行 PostgreSQL。发布时经过具体测试的平台见下方 Section 16.6。
以下软件包必须备齐,才能构建 PostgreSQL:
需要 GNU make 3.80 或更高版本; 其他 make 程序或较旧版本的 GNU make 都 无法工作。(GNU make 有时会以 gmake 这个名字安装。)要检查是否为 GNU make,请输入:
make --version
你需要一个 ISO/ANSI C 编译器 (至少符合 C99)。推荐使用较新的 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.14。 由于 PL/Perl 是一个共享库,在大多数平台上, libperl 也必须是共享库。这在较新的 Perl 版本中似乎是默认行为,但在更早版本中并非如此; 无论如何,这取决于你所在环境中安装 Perl 的人是如何选择的。 如果选择构建 PL/Perl,但 configure 找不到共享的 libperl,则配置将失败。在这种情况下, 你必须手动重新构建并安装 Perl, 才能构建 PL/Perl。在配置 Perl 时,请要求生成共享库。
如果你打算不仅仅是偶尔使用 PL/Perl, 应确保 Perl 安装是在启用了 usemultiplicity 选项的情况下构建的 (perl -V 会显示这一点)。
要构建 PL/Python 服务器端编程语言,你需要带有头文件以及 sysconfig 模块的 Python 安装。最低要求版本是 Python 2.7。支持 3.2 及更高版本的 Python 3;但使用 Python 3 时请参见 Section 45.1。
由于 PL/Python 是一个共享库,在大多数平台上, libpython 也必须是共享库。默认情况下, 从源代码构建的 Python 安装并非如此, 但很多操作系统发行版提供了共享库。如果选择构建 PL/Python,但 configure 找不到共享的 libpython,则配置将失败。这可能意味着你要么需要安装 额外的软件包,要么需要重新构建(部分)Python 安装,以提供这个共享库。从源代码构建时,请在运行 Python 的 configure 时加上 --enable-shared 标志。
要构建 PL/Tcl 过程语言,你当然需要安装 Tcl。最低要求版本是 Tcl 8.4。
要启用本地语言支持(NLS),也就是以非英语语言显示程序消息的能力,你需要一个 Gettext API 的实现。某些操作系统已内置此功能(例如 Linux、NetBSD、Solaris);对于其他系统,你可以从 http://www.gnu.org/software/gettext/ 下载附加软件包。如果你使用的是 GNU C 库中的 Gettext 实现,那么还需要 GNU Gettext 软件包来提供某些实用程序。如果使用其他实现,则不需要它。
如果你希望支持加密的客户端连接,就需要 OpenSSL。在没有 /dev/urandom 的平台上(Windows 除外),生成随机数也需要 OpenSSL。最低要求版本是 1.0.1。
如果你希望支持使用相应服务进行身份验证,就需要 Kerberos、OpenLDAP 和/或 PAM。
构建 PostgreSQL 文档另有一组要求;参见 Section J.2。
如果你从 Git 树构建,而不是使用已发布的源码包,或者你要进行服务器开发,还需要以下软件包:
如果你需要获取 GNU 软件包,可以从本地的 GNU 镜像站点获取(站点列表见 https://www.gnu.org/prep/ftp),或者直接从 ftp://ftp.gnu.org/gnu/ 获取。
还要检查磁盘空间是否充足。编译期间,源码树需要约 350 MB,安装目录需要约 60 MB。空数据库集簇约占 40 MB;数据库所需空间大约是存储相同数据的纯文本文件的五倍。如果要运行回归测试,还会临时额外需要最多 300 MB。使用 df 命令检查可用磁盘空间。