一般说来,一个现代的与 Unix 兼容的平台应该就能运行PostgreSQL。 到发布为止已经明确测试过的平台的列表在 第 17.6 节中进行了描述。
构建PostgreSQL需要以下软件包:
需要GNU make版本3.81或更新版本;其他
make程序或旧版GNU make将无法工作。
(GNU make有时安装为
名称gmake
。)要测试GNU
make是否安装,输入:
make --version
需要一个ISO/ANSI C编译器(至少符合C99标准)。推荐使用 最新版本的GCC,但 已知PostgreSQL可以使用来自不同供应商的各种编译器进行构建。
需要tar来解压源代码 发行版,还需要gzip或bzip2之一。
默认使用GNU Readline库。它允许psql(
PostgreSQL命令行SQL解释器)记住您输入的每个命令,并允许您使用箭头键来回忆和
编辑以前的命令。这非常有帮助,强烈推荐使用。如果您不想使用它,则必须在
configure
中指定--without-readline
选项。
作为替代,您通常可以使用BSD许可的libedit
库,最初
在NetBSD上开发。如果找不到libreadline
,或者
使用--with-libedit-preferred
作为
configure
的选项,则使用libedit
库。
如果您使用基于软件包的Linux发行版,请注意您需要
readline
和readline-devel
包,如果
在您的发行版中是分开的。
默认使用zlib压缩库。如果您不想使用它,则必须
在configure
中指定--without-zlib
选项。
使用此选项将禁用pg_dump和
pg_restore中的压缩归档支持。
以下软件包是可选的。它们在默认配置中不是必需的,但在启用某些构建选项时是必需的,如下所述:
要构建服务器编程语言PL/Perl,您需要完整的Perl安装,
包括libperl
库和头文件。最低要求版本是Perl 5.8.3。
由于PL/Perl将是一个共享库,在大多数平台上
libperl
库也必须是一个共享库。这似乎是最近Perl版本的默认设置,
但在早期版本中不是这样,在任何情况下,这是在您的站点安装Perl的人的选择。configure
将失败,
如果选择构建PL/Perl但找不到共享libperl
。在这种情况下,
您将不得不手动重新构建和安装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/下载一个附加包。 如果您正在使用Gettext在GNU C库中的实现,那么您还需要一些实用程序的GNU Gettext包。 对于其他任何实现,您将不需要它。
如果您想支持加密客户端连接,您需要OpenSSL。
在没有/dev/urandom
(除了Windows)的平台上,
也需要OpenSSL来生成随机数。最低要求版本为1.0.1。
您需要Kerberos,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/找到它们。
还要检查一下你是否有足够的磁盘空间。你将大概需要近 350 MB 用于存放编译过程中的源码树和大约 40 MB 用于安装目录。
一个空数据库集簇大概需要 35 MB。一个数据库所占的空间大约是存储同样数据的平面文件所占空间的五倍。
如果你要运行回归测试,还临时需要额外的 300 MB。请用df
命令检查剩余磁盘空间。