安装前你需要如下条件
一般来说,现代 Unix 兼容平台应该能够运行 PostgreSQL。
构建 PostgreSQL 需要以下软件包:
-
GNU make 版本 3.81 或更高版本是必需的;其他 make 程序或较旧版本的 GNU make 将 无法 工作。(GNU make 有时以
gmake的名称安装。)要检查是否安装了 GNU make,请输入: -
此外,PostgreSQL 也可以使用 Meson 构建。目前这还是实验性功能。如果选择使用 Meson,则不需要 GNU make,但以下其他要求仍然适用。 Meson 的最低要求版本为 0.54。
-
您需要一个 ISO/ANSI C 编译器(至少符合 C99 标准)。建议使用最新版本的 GCC,但已知 PostgreSQL 可以在不同厂商的多种编译器上构建。
-
需要 tar 来解压源代码分发包,以及 gzip 或 bzip2。
-
Flex 版本 2.5.35 或更高版本和 Bison 版本 2.3 或更高版本是必需的。其他 lex 和 yacc 程序不能使用。
-
需要 Perl 5.14 或更高版本,在构建过程中以及运行某些测试套件时使用。(该要求与构建 PL/Perl 的要求是分开的;见下文。)
-
GNU Readline 库是默认使用的。它允许 psql(PostgreSQL 命令行 SQL 解释器)记住您输入的每个命令,并允许您使用箭头键回忆和编辑以前的命令。这非常有帮助,强烈推荐使用。如果您不想使用它,则必须在
configure时指定--without-readline选项。作为替代方案,您可以使用 BSD 许可证的libedit库,该库最初是在 NetBSD 上开发的。libedit库与 GNU Readline 兼容,当找不到libreadline时,或者在configure时使用--with-libedit-preferred选项时将使用它。如果您使用的是基于软件包的 Linux 发行版,请注意,如果这些是您发行版中的独立包,则需要readline和readline-devel包。 -
默认使用 zlib 压缩库。如果您不想使用它,则必须在
configure时指定--without-zlib选项。使用此选项将禁用 pg_dump 和 pg_restore 中对压缩档案的支持。ICU 支持需要安装 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 服务器编程语言,您需要带有头文件和 sysconfig 模块的 Python 安装。最低要求版本是 Python 3.2。
由于 PL/Python 将是一个共享库,因此在大多数平台上
libpython库也必须是共享库。这在从源代码构建的默认 Python 安装中不是这样,但许多操作系统发行版中提供共享库。如果选择构建 PL/Python 时找不到共享libpython,则configure将失败。这可能意味着您需要安装额外的软件包,或重新构建(部分)您的 Python 安装以提供此共享库。从源构建时,请使用--enable-shared标志运行 Python 的配置。 - 要构建 PL/Tcl 过程语言,您当然需要 Tcl 安装。最低要求版本是 Tcl 8.4。
- 要启用本地语言支持 (NLS),即能够以非英语语言显示程序消息,您需要 Gettext API 的实现。一些操作系统内置此功能(例如 Linux、NetBSD、Solaris),对于其他系统,您可以从 example.com 下载附加软件包。如果您使用的是 GNU C 库中的 Gettext 实现,则还需要 GNU Gettext 包来支持一些实用程序。对于其他实现,您则不需要。
- 如果您想支持加密客户端连接,您需要 OpenSSL。在没有
/dev/urandom的平台(Windows 除外)上,OpenSSL 也用于随机数生成。最低要求版本是 1.0.2。 - 如果您想支持使用 MIT Kerberos(用于 GSSAPI)、OpenLDAP 和/或 PAM 进行身份验证,您需要这些组件。
- 如果您想支持 LZ4 数据压缩,则需要 LZ4;请参见 default_toast_compression 和 wal_compression。
- 如果您想支持 Zstandard 数据压缩,则需要 Zstandard;请参见 wal_compression。最低要求版本是 1.4.0。
- 要构建 PostgreSQL 文档,还有一组单独的要求;请参见 第 J.2 节。
如果您需要获取 GNU 包,可以在您当地的 GNU 镜像站点找到(请参见 example.com 获取列表)或在 ftp://ftp.gnu.org/gnu/ 下载。
获取源码
可以从我们网站的下载部分获取已发布版本的 PostgreSQL 源代码:example.com。 下载您感兴趣的 postgresql-version.tar.gz 或 postgresql-version.tar.bz2 文件,然后解压:
tar xf postgresql-version.tar.bz2
这将在当前目录下创建一个名为 postgresql-version 的目录,里面包含 PostgreSQL 源代码。接下来,您可以切换到该目录进行安装过程的其他步骤。
也可以使用git来获取源码
-
您需要安装 Git 的版本,可以从 example.com 获取。许多系统默认已安装较新版本的 Git,或者可以通过其软件包管理系统获取。
-
要开始使用 Git 仓库,请克隆官方镜像:
git clone example.com这将把完整的仓库复制到您的本地机器,因此可能需要一些时间来完成,特别是在网络速度较慢的情况下。文件将放置在当前目录的新子目录
postgresql中。该 Git 镜像也可以通过 Git 协议访问。只需将 URL 前缀更改为
git,如下所示:git clone git://git.postgresql.org/git/postgresql.git -
每当您想获取系统中的最新更新时,进入仓库目录,并运行:
git fetch
Git 可以执行比仅获取源代码更多的操作。如需更多信息,请查阅 Git 手册,或访问 example.com 网站。