支持的版本: 当前 (17) / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 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 需要版本 3.81 或更新版本的 make;其他 make 程序或较旧的GNU make 版本将 不起作用。(GNU make 有时会以 gmake 的名称安装。) 要测试GNU make ,请输入

    make --version
    
  • 或者,可以使用 Meson 构建 PostgreSQL。 这目前是实验性的。 如果您选择使用 Meson,那么您不需要GNU make,但以下其他要求仍然适用。

    Meson 的最低要求版本为 0.54。

  • 您需要一个ISO/ANSIC 编译器(至少符合 C99 标准)。 建议使用最新版本的 GCC,但已知 PostgreSQL 可以使用来自不同供应商的各种编译器进行构建。

  • 除了 gzipbzip2 之外,还需要 tar 来解压缩源代码发行版。

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

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

  • 默认情况下使用GNU Readline 库。它允许 psql(PostgreSQL 命令行 SQL 解释器)记住您键入的每个命令,并允许您使用箭头键来调用和编辑以前的命令。这很有帮助,强烈建议使用。如果您不想使用它,则必须为 configure 指定 --without-readline 选项。作为替代方案,您通常可以使用最初在 NetBSD 上开发的 BSD 许可的 libedit 库。libedit 库与 GNU Readline 兼容,如果在找不到 libreadline 或将 --with-libedit-preferred 用作 configure 的选项时使用。如果您使用的是基于软件包的 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 服务器编程语言,您需要一个带有头文件和 sysconfig 模块的 Python 安装。 最低要求版本是 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/ 下载一个附加软件包。如果您正在使用GNUC 库中的 Gettext 实现,那么您还需要用于某些实用程序的 GNU Gettext 软件包。对于任何其他实现,您都不需要它。

  • 如果您想支持加密客户端连接,则需要 OpenSSLOpenSSL 也需要在没有 /dev/urandom(Windows 除外)的平台上生成随机数。最低要求版本为 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/ 找到它。

提交更正

如果您在文档中发现任何不正确、与您使用特定功能的体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。