一般来说,现代的类 Unix 平台应该能够运行 PostgreSQL。在发布时已接受特定测试的平台在 第 17.6 节 中描述。
以下软件包是构建 PostgreSQL 所必需的。
GNU make 版本 3.81 或更高版本是必需的;其他 make 程序或旧的GNU make 版本将 无法 工作。(GNU make 有时安装在 gmake
名称下。)要测试GNU make 输入
make --version
或者,可以使用 Meson 构建 PostgreSQL。这目前处于实验阶段。如果您选择使用 Meson,那么您不需要GNU make,但以下其他要求仍然适用。
Meson 的最低要求版本为 0.54。
您需要一个ISO/ANSIC 编译器(至少符合 C99 标准)。推荐使用 GCC 的最新版本,但 PostgreSQL 众所周知可以使用来自不同供应商的各种编译器进行构建。
tar 是解压缩源代码发行版所必需的,除了 gzip 或 bzip2 之一。
构建过程中和运行某些测试套件都需要 Perl 5.14 或更高版本。(此要求与构建 PL/Perl 的要求无关;请参阅下文。)
该GNU Readline 库默认使用。它允许 psql(PostgreSQL 命令行 SQL 解释器)记住您键入的每个命令,并允许您使用箭头键来回忆和编辑以前的命令。这非常有用,强烈推荐使用。如果您不想使用它,则必须在 configure
中指定 --without-readline
选项。作为替代方案,您通常可以使用 BSD 许可的 libedit
库,该库最初在 NetBSD 上开发。如果未找到 libreadline
,或者如果 --with-libedit-preferred
用作 configure
的选项,则将使用 libedit
库。如果您使用的是基于软件包的 Linux 发行版,请注意,您需要 readline
和 readline-devel
软件包,如果它们在您的发行版中是分开的。
默认情况下使用 zlib 压缩库。如果您不想使用它,则必须在 configure
中指定 --without-zlib
选项。使用此选项将禁用 pg_dump 和 pg_restore 中的压缩存档支持。
默认情况下使用 ICU 库。如果您不想使用它,则必须在 configure
中指定 --without-icu
选项。使用此选项将禁用 ICU 排序功能的支持(请参阅 第 23.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 的人的选择。如果选择了构建 PL/Perl 但无法找到共享 libperl
,则 configure
将失败。在这种情况下,您必须手动重新构建和安装 Perl 才能构建 PL/Perl。在 Perl 的配置过程中,请求一个共享库。
如果您打算更多地使用 PL/Perl,则应确保 Perl 安装是在启用 usemultiplicity
选项的情况下构建的(perl -V
将显示是否为这种情况)。
要构建 PL/Python 服务器编程语言,您需要一个 Python 安装,其中包含头文件和 sysconfig 模块。最低要求版本为 Python 3.2。
由于 PL/Python 将是一个共享库,因此 libpython
库也必须是大多数平台上的共享库。在从源代码构建的默认 Python 安装中并非如此,但在许多操作系统发行版中都提供了一个共享库。如果选择了构建 PL/Python 但无法找到共享 libpython
,则 configure
将失败。这可能意味着您要么必须安装额外的软件包,要么重新构建(部分)您的 Python 安装以提供此共享库。从源代码构建时,使用 --enable-shared
标志运行 Python 的配置。
要构建 PL/Tcl 过程语言,您当然需要一个 Tcl 安装。最低要求版本为 Tcl 8.4。
要启用本地语言支持(NLS),即能够以除英语以外的语言显示程序消息,您需要实现 GettextAPI. 一些操作系统已内置此功能(例如,Linux、NetBSD、Solaris),对于其他系统,您可以从 https://www.gnu.org/software/gettext/ 下载附加软件包。如果您使用的是 Gettext 的实现GNUC 库中,那么您还需要一些实用程序的 GNU Gettext 软件包。对于任何其他实现,您都不需要它。
如果您想支持加密的客户端连接,则需要 OpenSSL。在没有 /dev/urandom
的平台上(Windows 除外),OpenSSL 也是随机数生成所必需的。最低要求版本为 1.0.2。
如果您想支持使用这些服务的身份验证,则需要 MIT Kerberos(用于 GSSAPI)、OpenLDAP 和/或 PAM。
如果您想支持使用该方法压缩数据,则需要 LZ4;请参阅 default_toast_compression 和 wal_compression。
如果您想支持使用该方法压缩数据,则需要 Zstandard;请参阅 wal_compression。最低要求版本为 1.4.0。
要构建 PostgreSQL 文档,有一组单独的要求;请参阅 第 J.2 节。
如果您需要获取GNU软件包,您可以在本地找到它GNU镜像站点(参见 https://www.gnu.org/prep/ftp 获取列表)或在 ftp://ftp.gnu.org/gnu/。
如果您在文档中发现任何错误、与您对特定功能的体验不符或需要进一步说明,请使用 此表格 报告文档问题。