Skip to content

17.1. 要求#

一般来说,现代的 Unix 兼容平台应该能够运行PostgreSQL。在发布时经过特定测试的平台将在下面的第 17.6 节中描述。

构建PostgreSQL需要以下软件包

  • make 需要 3.81 或更高版本;其他 make 程序或较旧的 make 版本不能使用。( make 有时以 gmake 的名称安装。)要测试 make,请输入

    make --version
    
  • 或者,可以使用 Meson 构建 PostgreSQL。这目前处于实验阶段,并且仅在从 Git 签出(而不是从发行版 tar 包)构建时才有效。如果您选择使用 Meson,则不需要 make,但以下其他要求仍然适用。

    Meson 的最低要求版本是 0.54。

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

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

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

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

  • 默认情况下使用 ICU 区域设置提供程序(请参阅 第 24.1.4 节)。如果您不想使用它,则必须为 configure 指定 --without-icu 选项。使用此选项会禁用对 ICU 校对功能的支持(请参阅 第 24.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 的任何人选择的。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。

  • 要启用本机语言支持 (),即以英语以外的语言显示程序消息的能力,您需要 Gettext 的实现。某些操作系统已内置此功能(例如,LinuxNetBSDSolaris),对于其他系统,您可以从 https://www.gnu.org/software/gettext/ 下载附加软件包。如果您在 C 库中使用 Gettext 实现,那么您还需要 GNU Gettext 软件包来获取一些实用程序。对于任何其他实现,您都不需要它。

  • 如果您想要支持加密客户端连接,则需要 OpenSSLOpenSSL 也是在没有 /dev/urandom 的平台上进行随机数生成的必需条件(Windows 除外)。最低要求版本是 1.0.1。

  • 如果您想要使用这些服务支持身份验证,则需要 MIT Kerberos(用于 GSSAPI)、OpenLDAP 和/或 PAM

  • 如果您想要使用该方法支持数据压缩,则需要 LZ4;请参见 default_toast_compressionwal_compression

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

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

如果您是从Git树构建而不是使用已发布的源软件包,或者如果您想要进行服务器开发,则还需要以下软件包

  • 从 Git 签出构建,或者如果您更改了实际的扫描器和解析器定义文件,则需要 FlexBison。如果您需要它们,请务必获取 Flex 2.5.35 或更高版本和 Bison 2.3 或更高版本。无法使用其他 lexyacc 程序。

  • Perl 5.14 或更高版本是构建 Git 签出版本所必需的,或者如果您更改了使用 Perl 脚本的任何构建步骤的输入文件。无论如何,如果您在 Windows 上构建,您将需要 Perl。运行某些测试套件也需要 Perl

如果您需要获取GNU包,您可以在您当地的GNU镜像站点(有关列表,请参阅https://www.gnu.org/prep/ftp)或ftp://ftp.gnu.org/gnu/找到它。