17.1. 需求 #
一般来说,现代的 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 也可以使用来自不同厂商的多种编译器构建。
需要 tar 来解开源代码发布包,此外还需要 gzip 或 bzip2 之一。
默认使用 GNU Readline 库。它可以让 psql(PostgreSQL 命令行 SQL 解释器)记住你输入的每一条命令,并允许你使用方向键回忆和编辑此前的命令。这非常有用,强烈推荐。如果你不想使用它,则必须给
configure指定--without-readline选项。作为替代方案,你通常也可以使用 BSD 许可的libedit库,它最初是在 NetBSD 上开发的。libedit库与 GNU Readline 兼容;如果找不到libreadline,或者在configure中使用了--with-libedit-preferred选项,就会使用它。如果你使用的是基于软件包的 Linux 发行版,请注意,如果你的发行版把它们拆成单独的软件包,那么需要同时安装readline和readline-devel。默认使用 zlib 压缩库。如果你不想使用它,则必须给
configure指定--without-zlib选项。使用这个选项将禁用 pg_dump 和 pg_restore 对压缩归档的支持。默认使用 ICU 库。如果你不想使用它,则必须给
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 的人是如何选择的。如果选择构建 PL/Perl,但configure找不到共享的libperl,则配置将失败。在这种情况下,你必须手动重新构建并安装 Perl,才能构建 PL/Perl。在配置 Perl 时,请要求生成共享库。如果你打算不仅仅是偶尔使用 PL/Perl,应确保 Perl 安装是在启用了
usemultiplicity选项的情况下构建的(perl -V会显示这一点)。要构建 PL/Python 服务器端编程语言,你需要带有头文件以及 sysconfig 模块的 Python 安装。最低要求版本是 Python 3.2。
由于 PL/Python 是一个共享库,在大多数平台上,
libpython也必须是共享库。默认情况下,从源代码构建的 Python 安装并非如此,但很多操作系统发行版提供了共享库。如果选择构建 PL/Python,但configure找不到共享的libpython,则配置将失败。这可能意味着你要么需要安装额外的软件包,要么需要重新构建(部分)Python 安装,以提供这个共享库。从源代码构建时,请在运行 Python 的 configure 时加上--enable-shared标志。要构建 PL/Tcl 过程语言,你当然需要安装 Tcl。最低要求版本是 Tcl 8.4。
要启用本地语言支持(NLS),也就是以非英语语言显示程序消息的能力,你需要一个 Gettext API 的实现。某些操作系统已内置此功能(例如 Linux、NetBSD、Solaris);对于其他系统,你可以从 https://www.gnu.org/software/gettext/下载附加软件包。如果你使用的是 GNU C 库中的 Gettext 实现,那么还需要 GNU Gettext 软件包来提供某些实用程序。如果使用其他实现,则不需要它。
如果你希望支持加密的客户端连接,就需要 OpenSSL。在没有
/dev/urandom的平台上(Windows 除外),生成随机数也需要 OpenSSL。最低要求版本是 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/获取。
报告文档问题
阅读 上游文档. 通过 PostgreSQL 文档反馈表单.