16.2. Requirements

通常,现代的 Unix 兼容平台应该能够运行 PostgreSQL。下面的Section 16.6中列出了在发布时已进行特定测试的平台。在发行版的doc子目录中,如果遇到问题,您可能希望查阅几个特定于平台的 FAQ 文档。

要构建 PostgreSQL,需要以下软件包:

  • 需要 GNU make 3.80 或更高版本;其他 make 程序或较旧的 GNU make 版本将“不起作用”。 (有时会以gmake的名称安装 GNU make.)要测试 GNU make,请 Importing:
make --version
  • 您需要一个 ISO/ANSI C 编译器(至少与 C89 兼容)。建议使用最新版本的 GCC,但已知 PostgreSQL 使用来自不同供应商的多种编译器来构建。

  • 除了 gzip 或 bzip2 之外,还需要 tar 来解压缩源代码发行包。

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

  • 默认使用 zlib 压缩库。如果您不想使用它,则必须为configure指定--without-zlib选项。使用此选项将禁用对 pg_dump 和 pg_restore 中的压缩归档的支持。

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

  • 要构建服务器编程语言 PL/Perl,您需要完整的 Perl 安装,包括libperl库和头文件。最低要求的版本是 Perl 5.8.3. 由于 PL/Perl 将是共享库,因此在大多数平台上, libperl库也必须是共享库。在最新的 Perl 版本中,这似乎是默认设置,但在较早的版本中则不是默认设置,无论如何,这是您在站点上安装 Perl 的人的选择。如果选择了构建 PL/Perl,但configure将失败,但找不到共享的libperl。在这种情况下,您将必须手动重建并安装 Perl 才能构建 PL/Perl。在 Perl 的配置过程中,请求共享库。

如果您打算不仅仅使用 PL/Perl,则应确保在启用usemultiplicity选项的情况下构建 Perl 安装(perl -V将显示是否是这种情况)。

  • 要构建 PL/Python 服务器编程语言,您需要安装 Python,其中包含头文件和 distutils 模块。最低要求的版本是 Python 2.4. 如果版本 3 或更高版本,则支持 Python 3.但使用 Python 3 时请参阅Section 45.1

由于 PL/Python 将是共享库,因此在大多数平台上, libpython库也必须是共享库。从源代码构建的默认 Python 安装中不是这种情况,但是在许多 os 发行版中都可以使用共享库。如果选择了构建 PL/Python,则configure将失败,但找不到共享的libpython。这可能意味着您必须安装其他软件包或重建 Python 安装(的一部分)才能提供此共享库。从源代码构建时,请使用--enable-shared标志运行 Python 的 configure。

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

  • 要启用本地语言支持(NLS),即能够以英语以外的其他语言显示程序消息的功能,您需要实现 Gettext API。某些 os 具有此内置功能(例如 Linux,NetBSD,Solaris),对于其他系统,您可以从http://www.gnu.org/software/gettext/下载附加软件包。如果您在 GNU C 库中使用 Gettext 实现,那么对于某些 Util,您将另外需要 GNU Gettext 包。对于任何其他实现,您将不需要它。

  • 如果要支持加密的 Client 端连接,则需要 OpenSSL。最低要求的版本是 0.9.8.

  • 如果要使用这些服务支持身份验证,则需要 Kerberos,OpenLDAP 和/或 PAM。

  • 要构建 PostgreSQL 文档,有一套单独的要求。参见Section J.2

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

  • 需要 GNU Flex 和 Bison 才能通过 Git 签出进行构建,或者如果您更改了实际的扫描程序和解析器定义文件。如果需要它们,请确保获得 Flex 2.5.31 或更高版本以及 Bison 1.875 或更高版本。不能使用其他 lex 和 yacc 程序。

  • 要从 Git 签出中构建,或者如果您更改了使用 Perl 脚本的任何构建步骤的 Importing 文件,都需要 Perl 5.8.3 或更高版本。如果在 Windows 上构建,则无论如何都需要 Perl。还需要 Perl 运行一些测试套件。

如果需要获取 GNU 软件包,则可以在本地 GNU 镜像站点(请参阅http://www.gnu.org/order/ftp.html以获得列表)或ftp://ftp.gnu.org/gnu/处找到它。

还要检查您是否有足够的磁盘空间。编译期间,您将需要约 100 MB 的源树,而安装目录将需要约 20 MB。一个空的数据库集群大约需要 35 MB。数据库占用的空间大约是具有相同数据的纯文本文件所需要的空间的五倍。如果要运行回归测试,则暂时需要额外的 150 MB。使用df命令检查可用磁盘空间。