传统基于 Autoconf 与 GNU Make 的标准源码构建流程。
标准简易安装流程:
./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
配置环境
运行 ./configure 探测系统环境并生成构建配置。
编译源码
运行 make 编译全部二进制程序与内核共享库。
安装程序
运行 make install 将编译产物安装至目标前缀路径。
--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 的安全增强模块。
--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 #按块数指定段大小。
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 工具路径。