2024 年 9 月 26 日: PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本:11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

17.1. 要求 #

一般来说,现代的类 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 是解压缩源代码发行版所必需的,除了 gzipbzip2 之一。

  • 需要 Flex 2.5.35 或更高版本和 Bison 2.3 或更高版本。其他 lexyacc 程序无法使用。

  • 构建过程中和运行某些测试套件都需要 Perl 5.14 或更高版本。(此要求与构建 PL/Perl 的要求无关;请参阅下文。)

  • GNU Readline 库默认使用。它允许 psql(PostgreSQL 命令行 SQL 解释器)记住您键入的每个命令,并允许您使用箭头键来回忆和编辑以前的命令。这非常有用,强烈推荐使用。如果您不想使用它,则必须在 configure 中指定 --without-readline 选项。作为替代方案,您通常可以使用 BSD 许可的 libedit 库,该库最初在 NetBSD 上开发。如果未找到 libreadline,或者如果 --with-libedit-preferred 用作 configure 的选项,则将使用 libedit 库。如果您使用的是基于软件包的 Linux 发行版,请注意,您需要 readlinereadline-devel 软件包,如果它们在您的发行版中是分开的。

  • 默认情况下使用 zlib 压缩库。如果您不想使用它,则必须在 configure 中指定 --without-zlib 选项。使用此选项将禁用 pg_dumppg_restore 中的压缩存档支持。

  • 默认情况下使用 ICU 库。如果您不想使用它,则必须在 configure 中指定 --without-icu 选项。使用此选项将禁用 ICU 排序功能的支持(请参阅 第 23.2 节)。

    ICU 支持要求安装 ICU4C 软件包。目前,ICU4C 的最低要求版本为 4.2。

    默认情况下,pkg-config 将用于查找所需的编译选项。这适用于 ICU4C 版本 4.6 及更高版本。对于旧版本,或者如果 pkg-config 不可用,则可以将变量 ICU_CFLAGSICU_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. 一些操作系统已内置此功能(例如,LinuxNetBSDSolaris),对于其他系统,您可以从 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_compressionwal_compression

  • 如果您想支持使用该方法压缩数据,则需要 Zstandard;请参阅 wal_compression。最低要求版本为 1.4.0。

  • 要构建 PostgreSQL 文档,有一组单独的要求;请参阅 第 J.2 节

如果您需要获取GNU软件包,您可以在本地找到它GNU镜像站点(参见 https://www.gnu.org/prep/ftp 获取列表)或在 ftp://ftp.gnu.org/gnu/

提交更正

如果您在文档中发现任何错误、与您对特定功能的体验不符或需要进一步说明,请使用 此表格 报告文档问题。