一般说来,一个现代的与 Unix 兼容的平台应该就能运行PostgreSQL。 到发布为止已经明确测试过的平台的列表在 第 17.6 节中进行了描述。
构建PostgreSQL需要以下软件包:
GNU make 版本 3.81 或更新版本是必需的;其他
make 程序或较旧的 GNU make 版本将无法工作。
(GNU make 有时会以
名称 gmake
安装。) 要测试 GNU
make,请输入:
make --version
或者,PostgreSQL 可以使用 Meson 构建。这目前是 实验性的,并且仅在从 Git 检出构建时有效(而不是从分发的 tarball)。 如果您选择使用 Meson,那么您不需要 GNU make,但以下的其他 要求仍然适用。
Meson的最低要求版本是0.54。
您需要一个ISO/ANSI C 编译器(至少 兼容 C99)。推荐使用最新版本的GCC,但 已知PostgreSQL可以使用来自不同厂商的多种 编译器进行构建。
tar 是解压源代码分发包所需的工具, 另外还需要 gzip 或 bzip2。
默认情况下使用GNUReadline库。
它允许psql(PostgreSQL命令行SQL解释器)记住
您输入的每个命令,并允许您使用箭头键来回忆和编辑之前的命令。
这非常有帮助,并且强烈推荐使用。如果您不想使用它,则必须为
configure
指定--without-readline
选项。
作为替代方案,您通常可以使用BSD许可的libedit
库,
它最初是在NetBSD上开发的。
libedit
库与GNU
Readline兼容,并且在找不到
libreadline
时,或者使用
--with-libedit-preferred
作为
configure
的选项时会被使用。
如果您使用基于软件包的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但无法找到共享的
libperl
,configure
将会失败。
在这种情况下,您将不得不手动重新构建和安装
Perl,以便能够构建
PL/Perl。在
Perl的配置过程中,请请求一个共享库。
如果您打算更多地使用PL/Perl,您应该确保Perl安装是使用usemultiplicity
选项构建的(perl -V
将显示是否是这种情况)。
要构建PL/Python服务器编程语言,您需要安装Python 并具有头文件以及sysconfig模块。所需的最低版本是Python 3.2。
由于PL/Python将是一个共享库,
libpython
库在大多数平台上也必须是一个共享库。这在默认的
Python源码构建的安装中并非如此,但在许多操作系统
发行版中提供了一个共享库。configure
如果选择构建
PL/Python但找不到共享的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/找到它们。