一般说来,一个现代的与 Unix 兼容的平台应该就能运行PostgreSQL。 到发布为止已经明确测试过的平台的列表在 Section 17.6中进行了描述。
构建PostgreSQL需要以下软件包:
GNU make 版本 3.81 或更新版本是必需的;其他
make 程序或较旧的 GNU make 版本将无法工作。
(GNU make 有时会以
名称 gmake
安装。) 要测试 GNU
make,请输入:
make --version
Alternatively, PostgreSQL can be built using Meson. This is currently experimental. If you choose to use Meson, then you don't need GNU make, but the other requirements below still apply.
Meson的最低要求版本是0.54。
您需要一个ISO/ANSI C 编译器(至少 兼容 C99)。推荐使用最新版本的GCC,但 已知PostgreSQL可以使用来自不同厂商的多种 编译器进行构建。
tar 是解压源代码分发包所需的工具, 另外还需要 gzip 或 bzip2。
Perl 5.14 或更高版本在构建过程中以及运行某些测试套件时是必需的。 (此要求与构建 PL/Perl 的要求是分开的;详见下文。)
默认情况下使用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排序功能
的支持(请参见Section 23.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。OpenSSL
也用于在没有/dev/urandom
(除Windows外)的平台上生成随机数。最低要求版本是1.0.2。
您需要MIT Kerberos(用于GSSAPI), OpenLDAP,和/或PAM, 如果您想支持使用这些服务进行身份验证。
如果您想要支持使用该方法对数据进行压缩,您需要LZ4;请参见 default_toast_compression和 wal_compression。
如果您想要支持使用该方法对数据进行压缩,您需要Zstandard;请参见wal_compression。 最低要求版本为1.4.0。
要构建PostgreSQL文档,需要满足一组单独的要求;请参见Section J.2。
如果你需要获取GNU包,你可以在你的本地GNU镜像站点 (看看 https://www.gnu.org/prep/ftp或ftp://ftp.gnu.org/gnu/找到它们。