PostgreSQL 快速编译指南
一、标准编译流程
1.1 准备工作
tar -zxvf postgresql-18.1.tar.gz
cd postgresql-18.1
sudo apt-get install build-essential libreadline-dev zlib1g-dev \
bison flex libssl-dev libxml2-dev
1.2 配置选项
| 选项 |
说明 |
示例 |
| --prefix |
安装目录 |
--prefix=/usr/local/pgsql |
| --with-openssl |
启用SSL支持 |
--with-openssl |
| --with-python |
启用Python支持 |
--with-python |
| --enable-debug |
启用调试信息 |
--enable-debug |
1.3 快速安装脚本
#!/bin/bash
./configure --prefix=/usr/local/pgsql
make world -j$(nproc)
sudo make install-world
sudo adduser postgres
sudo mkdir -p /usr/local/pgsql/data
sudo chown postgres /usr/local/pgsql/data
sudo 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
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
二、进阶配置
2.1 开发环境配置
./configure \
--prefix=/usr/local/pgsql-dev \
--enable-debug \
--enable-cassert \
--enable-depend \
--enable-profiling
make -j$(nproc)
make check
./configure \
--prefix=/usr/local/pgsql-dev \
--enable-debug \
--enable-cassert \
--enable-depend \
--enable-profiling
make -j$(nproc)
make check
2.2 生产环境配置
./configure --prefix=/opt/postgresql \
--with-openssl \
--with-libxml \
--with-uuid=e2fs \
--with-zlib \
--with-libxslt \
--with-systemd \
--with-icu \
--with-python \
--with-perl \
--with-tcl \
--with-gssapi \
--with-pam \
--with-ldap \
--with-llvm \
--with-wal-segsize=16 \
CFLAGS='-O2 -march=native'
三、常用命令速查表
编译相关
| 命令 |
功能 |
适用场景 |
| make world -j4 |
完整编译(4线程) |
完整安装 |
| make check |
运行测试 |
验证编译 |
| make clean |
清理编译文件 |
重新编译 |
安装相关
| 命令 |
功能 |
说明 |
| make install |
安装核心 |
基本安装 |
| make install-world |
完整安装 |
包含所有组件 |
| make install-contrib |
安装扩展 |
仅contrib模块 |
四、注意事项
⚠️ 权限管理
sudo adduser postgres
sudo chown -R postgres:postgres /usr/local/pgsql/data
📦 依赖管理
sudo yum install readline-devel zlib-devel openssl-devel
sudo apt-get install build-essential libreadline-dev zlib1g-dev
🔧 环境变量配置
export PATH=/usr/local/pgsql/bin:$PATH
export PGDATA=/usr/local/pgsql/data
五、故障排除
常见问题
- configure错误:检查依赖包是否安装完整
- make错误:查看错误日志,检查gcc版本
- 权限错误:确保使用正确的用户权限
六、版本兼容性
| PostgreSQL版本 |
最低GCC版本 |
推荐GCC版本 |
| 18.x |
GCC 4.8 |
GCC 8+ |
| 17.x |
GCC 4.8 |
GCC 8+ |
| 16.x |
GCC 4.8 |
GCC 8+ |
| 15.x |
GCC 4.8 |
GCC 8+ |