选择 打开 改范围 完整检索页
受支持版本: 当前版本 (18) / 17 / 16
开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10
当前 PostgreSQL 版本不在支持生命周期内。
您可以参阅当前版本的对应页面,或其他在上面列出的活跃大版本。

16.2. 需求 #

一般来说,现代的 Unix 兼容平台应该能够运行 PostgreSQL。发布时经过具体测试的平台列于下方 Section 16.6。发行包的 doc 子目录中有若干平台特定的 FAQ 文档,遇到问题时可以查阅。

以下软件包必须备齐,才能构建 PostgreSQL

  • 需要 GNU make 3.80 或更高版本; 其他 make 程序或较旧版本的 GNU make无法工作。(GNU make 有时会以 gmake 这个名字安装。)要检查是否为 GNU make,请输入:

    make --version
    
  • 你需要一个 ISO/ANSI C 编译器(至少符合 C89)。推荐使用较新的 GCC 版本,不过已知 PostgreSQL 也可以使用来自不同厂商的多种编译器构建。

  • 需要 tar 来解开源代码发布包,此外还需要 gzipbzip2 之一。

  • 默认使用 GNU Readline 库。 它可以让 psql(PostgreSQL 命令行 SQL 解释器) 记住你输入的每一条命令,并允许你使用方向键回忆和编辑此前的命令。 这非常有用,强烈推荐。如果你不想使用它,则必须给 configure 指定 --without-readline 选项。作为替代方案,你通常也可以使用 BSD 许可的 libedit 库,它最初是在 NetBSD 上开发的。 libedit 库与 GNU Readline 兼容;如果找不到 libreadline,或者在 configure 中使用了 --with-libedit-preferred 选项,就会使用它。如果你使用的是 基于软件包的 Linux 发行版,请注意,如果你的发行版把它们拆成单独的软件包, 那么需要同时安装 readlinereadline-devel

  • 默认使用 zlib 压缩库。如果你不想使用它, 则必须给 configure 指定 --without-zlib 选项。使用这个选项将禁用 pg_dumppg_restore 对压缩归档的支持。

以下软件包是可选的。默认配置不需要它们,但启用某些构建选项时需要,具体如下:

  • 要构建服务器端编程语言 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 2.7。支持 3.2 及更高版本的 Python 3;但使用 Python 3 时请参见 Section 46.1

    由于 PL/Python 是一个共享库,在大多数平台上, libpython 也必须是共享库。默认情况下, 从源代码构建的 Python 安装并非如此, 但很多操作系统发行版提供了共享库。如果选择构建 PL/Python,但 configure 找不到共享的 libpython,则配置将失败。这可能意味着你要么需要安装 额外的软件包,要么需要重新构建(部分)Python 安装,以提供这个共享库。从源代码构建时,请在运行 Python 的 configure 时加上 --enable-shared 标志。

  • 要构建 PL/Tcl 过程语言,你当然需要安装 Tcl。最低要求版本是 Tcl 8.4。

  • 要启用本地语言支持(NLS),也就是以非英语语言显示程序消息的能力,你需要一个 Gettext API 的实现。某些操作系统已内置此功能(例如 LinuxNetBSDSolaris);对于其他系统,你可以从 http://www.gnu.org/software/gettext/ 下载附加软件包。如果你使用的是 GNU C 库中的 Gettext 实现,那么还需要 GNU Gettext 软件包来提供某些实用程序。如果使用其他实现,则不需要它。

  • 如果你希望支持加密的客户端连接,就需要 OpenSSL。最低要求版本是 0.9.8。

  • 如果你希望支持使用相应服务进行身份验证,就需要 KerberosOpenLDAP 和/或 PAM

  • 构建 PostgreSQL 文档另有一组要求;参见 Section J.2

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

  • 从 Git 检出构建,或者修改了扫描器和解析器的实际定义文件时,需要 FlexBison。如果需要它们,请确保使用 Flex 2.5.31 或更高版本,以及 Bison 1.875 或更高版本。不能使用其他 lexyacc 程序。

  • 从 Git 检出构建,或者修改了使用 Perl 脚本的任何构建步骤的输入文件时,需要 Perl 5.8.3 或更高版本。在 Windows 上构建时,无论如何都需要 Perl。运行某些测试套件也需要 Perl

如果你需要获取 GNU 软件包,可以从本地的 GNU 镜像站点获取(站点列表见 https://www.gnu.org/prep/ftp),或者直接从 ftp://ftp.gnu.org/gnu/ 获取。

还要检查磁盘空间是否充足。编译期间,源码树需要约 100 MB,安装目录需要约 20 MB。空数据库集簇约占 35 MB;数据库所需空间大约是存储相同数据的纯文本文件的五倍。如果要运行回归测试,还会临时额外需要最多 150 MB。使用 df 命令检查可用磁盘空间。