PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

17.3. 使用 GNU Make 构建 #

17.3.1. 快速上手
17.3.2. 详细构建步骤
17.3.3. Configure 配置选项详解
17.3.4. 环境变量

传统基于 Autoconf 与 GNU Make 的标准源码构建流程。

17.3.1. 快速上手 #

标准简易安装流程:

./configure
make
su
make install
adduser postgres
mkdir -p /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start

17.3.2. 详细构建步骤 #

  1. 配置环境

    运行 ./configure 探测系统环境并生成构建配置。

  2. 编译源码

    运行 make 编译全部二进制程序与内核共享库。

  3. 安装程序

    运行 make install 将编译产物安装至目标前缀路径。

17.3.3. Configure 配置选项详解 #

17.3.3.1. 安装路径选项 #

--prefix #

安装主目录根路径。

--exec-prefix #

架构相关文件的安装路径。

--bindir #

可执行二进制文件安装目录。

--sysconfdir #

系统配置文件目录。

--libdir #

动态与静态库安装目录。

--includedir #

C 头文件安装目录。

--datarootdir #

只读架构无关数据根路径。

--datadir #

只读数据文件目录。

--localedir #

语言区域翻译数据目录。

--mandir #

man 联机帮助手册安装目录。

--docdir #

HTML 文档主目录。

--htmldir #

HTML 网页文件目录。

17.3.3.2. 特性配置选项 #

--enable-nls #

启用多语言消息本地化(NLS)。

--with-perl #

构建 PL/Perl 过程语言模块。

--with-python #

构建 PL/Python 过程语言模块。

--with-tcl #

构建 PL/Tcl 过程语言模块。

--with-tclconfig #

指定 Tcl 配置脚本所在目录。

--with-llvm #

启用基于 LLVM 的 JIT 即时编译支持。

--with-lz4 #

启用 LZ4 快速压缩算法支持。

--with-zstd #

启用 Zstandard 高压缩比算法支持。

--with-ssl #

启用 SSL/TLS 加密通信支持(默认 openssl)。

--with-openssl #

显式指定链接 OpenSSL 加密库。

--with-gssapi #

启用 GSSAPI / Kerberos 认证支持。

--with-ldap #

启用 LDAP 集中身份认证支持。相关链接配置。

--with-pam #

启用 Linux PAM 可插拔认证模块支持。

--with-bsd-auth #

启用 BSD 身份认证支持。

--with-systemd #

启用 systemd 服务生命周期就绪通知与看门狗支持。

--with-bonjour #

启用 Apple Bonjour 服务自动发现支持。

--with-uuid #

指定 UUID 生成算法提供程序。

--with-ossp-uuid #

链接 OSSP UUID 库。

--with-libcurl #

启用基于 libcurl 的网络请求支持。

--with-libnuma #

启用 NUMA 架构亲和性支持。

--with-liburing #

启用 Linux io_uring 异步 I/O 高性能支持。

--with-libxml #

启用基于 libxml2 的 XML 数据类型处理支持。

--with-libxslt #

启用 XSLT 文档转换支持。

--with-sepgsql #

启用基于 SELinux 的安全增强模块。

17.3.3.3. 禁用特性选项 #

--without-icu #

禁用 ICU 国际化库支持。

--without-readline #

禁用 Readline 终端交互行编辑库。

--with-libedit-preferred #

优先使用 BSD 授权的 libedit 替代 Readline。

--without-zlib #

禁用 zlib 压缩库支持。

17.3.3.4. 构建过程选项 #

--with-includes #

附加额外的 C 头文件搜索目录。

--with-libraries #

附加额外的动态链接库搜索目录。

--with-system-tzdata #

使用操作系统系统时区定义文件替代内置数据库。

--with-extra-version #

在官方版本字符串末尾附加自定义企业标识后缀。

--disable-rpath #

禁止将共享库运行时硬编码路径写入可执行文件。

17.3.3.5. 杂项与尺寸配置选项 #

--with-pgport #

指定服务端默认监听端口(默认 5432)。

--with-krb-srvnam #

指定 Kerberos 服务主体名称(默认 postgres)。

--with-segsize #

指定单个关系数据段文件的物理大小(默认 1GB)。

--with-blocksize #

指定数据库数据块物理页面大小(默认 8KB)。

--with-wal-blocksize #

指定 WAL 日志物理页面尺寸(默认 8KB)。

17.3.3.6. 开发与调试选项 #

--enable-debug #

编译调试符号(-g)。

--enable-cassert #

开启内核内部 C 语言断言检查(仅限开发测试)。

--enable-tap-tests #

启用 TAP 自动化集成回归测试套件支持。

--enable-depend #

启用自动头文件依赖追踪。

--enable-coverage #

启用 gcov 代码覆盖率分析统计。

--enable-profiling #

启用 gprof 性能剖析支持。

--enable-dtrace #

启用 DTrace 静态追踪探测点支持。

--enable-injection-points #

启用代码错误注入测试挂载点支持。

--with-segsize-blocks #

按块数指定段大小。

17.3.4. 环境变量 #

BISON #

指定 Bison 解析器生成器可执行文件路径。

CC #

指定 C 编译器。

CFLAGS #

指定 C 编译器优化参数。

CLANG #

指定 Clang 编译器可执行路径。

CPP #

指定 C 预处理器命令。

CPPFLAGS #

传递给预处理器的参数。

CXX #

指定 C++ 编译器。

CXXFLAGS #

指定 C++ 编译参数。

DTRACE #

指定 DTrace 可执行程序路径。

DTRACEFLAGS #

传递给 DTrace 的参数。

FLEX #

指定 Flex 词法分析器路径。

LDFLAGS #

链接器参数。

LDFLAGS_EX #

仅针对可执行程序的链接参数。

LDFLAGS_SL #

仅针对共享库的链接参数。

LLVM_CONFIG #

指定 llvm-config 可执行文件。

MSGFMT #

指定 gettext 的 msgfmt 程序路径。

PERL #

指定 Perl 解释器完整路径。

PYTHON #

指定 Python 解释器完整路径。

TCLSH #

指定 Tcl 解释器路径。

XML2_CONFIG #

指定 xml2-config 工具路径。