一般来说,现代的 Unix 兼容平台应该能够运行 PostgreSQL。在发布时经过特定测试的平台将在下面的 第 17.6 节 中描述。
构建 PostgreSQL 需要以下软件包
GNU make 需要 3.81 或更高版本;其他 make 程序或较旧的 GNU make 版本不能使用。(GNU make 有时以 gmake
的名称安装。)要测试 GNU make,请输入
make --version
或者,可以使用 Meson 构建 PostgreSQL。这目前处于实验阶段,并且仅在从 Git 签出(而不是从发行版 tar 包)构建时才有效。如果您选择使用 Meson,则不需要 GNU make,但以下其他要求仍然适用。
Meson 的最低要求版本是 0.54。
您需要一个 ISO/ANSI C 编译器(至少符合 C99 标准)。推荐使用 GCC 的最新版本,但已知 PostgreSQL 可以使用来自不同供应商的各种编译器进行构建。
除了 gzip 或 bzip2 之外,还需要 tar 来解压源发行版。
默认情况下使用 GNU Readline 库。它允许 psql(PostgreSQL 命令行 SQL 解释器)记住您键入的每条命令,并允许您使用箭头键来调用和编辑以前的命令。这非常有用,强烈推荐使用。如果您不想使用它,则必须为 configure
指定 --without-readline
选项。或者,您通常可以使用 BSD 许可的 libedit
库,该库最初在 NetBSD 上开发。如果未找到 libreadline
,或者如果将 --with-libedit-preferred
用作 configure
的选项,则 libedit
库与 GNU Readline 兼容并被使用。如果您使用的是基于包的 Linux 发行版,请注意,如果您在发行版中将它们分开,则需要 readline
和 readline-devel
包。
默认情况下使用 zlib 压缩库。如果您不想使用它,则必须为 configure
指定 --without-zlib
选项。使用此选项会禁用 pg_dump 和 pg_restore 中对压缩存档的支持。
默认情况下使用 ICU 区域设置提供程序(请参阅 第 24.1.4 节)。如果您不想使用它,则必须为 configure
指定 --without-icu
选项。使用此选项会禁用对 ICU 校对功能的支持(请参阅 第 24.2 节)。
ICU 支持需要安装 ICU4C 包。当前 ICU4C 所需的最低版本为 4.2。
默认情况下,pkg-config 将用于查找所需的编译选项。这适用于 ICU4C 4.6 及更高版本。对于较旧版本,或者如果 pkg-config 不可用的情况下,变量 ICU_CFLAGS
和 ICU_LIBS
可以指定给 configure
,如下例所示
./configure ... ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
(如果编译器的默认搜索路径中包含 ICU4C,那么您仍然需要指定非空字符串,以避免使用 pkg-config,例如,ICU_CFLAGS=' '
。)
以下软件包是可选的。它们在默认配置中不是必需的,但在启用某些构建选项时需要它们,如下所述
要构建服务器编程语言 PL/Perl,您需要一个完整的 Perl 安装,包括 libperl
库和头文件。最低要求版本是 Perl 5.14。由于 PL/Perl 将成为一个共享库,因此在大多数平台上, libperl
库也必须是一个共享库。这似乎是近期 Perl 版本中的默认设置,但它不在早期版本中,并且在任何情况下,它都是由在您网站上安装 Perl 的任何人选择的。configure
将在选择构建 PL/Perl 但找不到共享 libperl
时失败。在这种情况下,您将必须手动重新构建并安装 Perl 才能构建 PL/Perl。在 Perl 的配置过程中,请求一个共享库。
如果您打算大量使用 PL/Perl,则应确保使用启用了 usemultiplicity
选项构建 Perl 安装(perl -V
将显示是否为这种情况)。
要构建 PL/Python 服务器编程语言,您需要一个带有头文件和 sysconfig 模块的 Python 安装。最低要求版本是 Python 3.2。
由于 PL/Python 将成为一个共享库,因此在大多数平台上, libpython
库也必须是一个共享库。在从源代码构建的默认 Python 安装中,情况并非如此,但许多操作系统发行版中都提供了共享库。configure
将在选择构建 PL/Python 但找不到共享 libpython
时失败。这可能意味着您必须安装其他软件包或重新构建(部分)Python 安装才能提供此共享库。从源代码构建时,使用 --enable-shared
标志运行 Python 的配置。
要构建 PL/Tcl 过程语言,您当然需要一个 Tcl 安装。最低要求版本是 Tcl 8.4。
要启用本机语言支持 (NLS),即以英语以外的语言显示程序消息的能力,您需要 Gettext API 的实现。某些操作系统已内置此功能(例如,Linux、NetBSD、Solaris),对于其他系统,您可以从 https://www.gnu.org/software/gettext/ 下载附加软件包。如果您在 GNU C 库中使用 Gettext 实现,那么您还需要 GNU Gettext 软件包来获取一些实用程序。对于任何其他实现,您都不需要它。
如果您想要支持加密客户端连接,则需要 OpenSSL。OpenSSL 也是在没有 /dev/urandom
的平台上进行随机数生成的必需条件(Windows 除外)。最低要求版本是 1.0.1。
如果您想要使用这些服务支持身份验证,则需要 MIT Kerberos(用于 GSSAPI)、OpenLDAP 和/或 PAM。
如果您想要使用该方法支持数据压缩,则需要 LZ4;请参见 default_toast_compression 和 wal_compression。
如果您想要使用该方法支持数据压缩,则需要 Zstandard;请参见 wal_compression。最低要求版本是 1.4.0。
要构建 PostgreSQL 文档,需要单独的一组要求;请参见 第 J.2 节。
如果您是从 Git 树构建而不是使用已发布的源软件包,或者如果您想要进行服务器开发,则还需要以下软件包
如果您需要获取 GNU 包,您可以在您当地的 GNU 镜像站点(有关列表,请参阅 https://www.gnu.org/prep/ftp)或 ftp://ftp.gnu.org/gnu/ 找到它。