
1. 最小依赖(CentOS 7.9)
yum install -y gcc make readline-devel zlib-devel openssl-devel libicu-devel bison flex
只要 psql,不用装 systemd-devel / libxml2-devel / python3-devel / perl-devel。
2. 下载解压 PG 18.4 源码
cd /usr/local/src
wget https://ftp.postgresql.org/pub/source/v18.4/postgresql-18.4.tar.gz
tar xf postgresql-18.4.tar.gz
cd postgresql-18.4
独立安装openssl:
cd /usr/local/src
yum install -y gcc make perl-core zlib-devel
wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz
tar xf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl11 --openssldir=/usr/local/openssl11 shared zlib
make -j$(nproc)
make install_sw # 只装库和二进制,不装文档
3)注册动态库(让 PG 运行时能找到 libssl.so.1.1)
echo "/usr/local/openssl11/lib" > /etc/ld.so.conf.d/openssl11.conf
ldconfig
/usr/local/openssl11/bin/openssl version # 应显示 1.1.1w
3. configure(客户端向,最小参数)
./configure --prefix=/opt/pgsql-18.4-client --with-pgport=5432 --with-openssl --with-icu --with-readline --with-zlib --with-includes=/usr/local/openssl11/include --with-libraries=/usr/local/openssl11/lib
说明:
不加 --with-server 这种开关(PG 没有这个开关),服务端会不会编出来靠后面 make -C 控制
--with-icu 建议留着,PG18 的 psql 连服务端做字符集/排序协商时更稳;CentOS7 自带 libicu-devel-50 可用
configure 结尾看到 OpenSSL = yes、ICU = yes、readline = yes 即可。
4. 只编客户端相关代码(不编服务端 backend)
make -C src/interfaces # 编 libpq 等客户端库
make -C src/bin # 编 psql / pg_dump / pg_config 等
不要跑顶层 make,否则会把 src/backend 整个服务端也编了。
5. 只安装客户端文件
make -C src/interfaces install
make -C src/bin install
make -C src/include install # 头文件,纯连客户端可不装,开发用才装
装完后只有 /opt/pgsql-18.4-client/bin/psql 和 libpq,没有 postgres / initdb / pg_ctl。
验证:
/opt/pgsql-18.4-client/bin/psql --version
# psql (PostgreSQL) 18.4
6. 环境变量 / 软链(按需)
ln -s /opt/pgsql-18.4-client/bin/psql /usr/local/bin/psql
cat > /etc/profile.d/pgclient.sh <<'EOF'
export PATH=/opt/pgsql-18.4-client/bin:$PATH
export LD_LIBRARY_PATH=/opt/pgsql-18.4-client/lib:$LD_LIBRARY_PATH
EOF
source /etc/profile.d/pgclient.sh
7. 连远程库测试
psql "host=192.168.x.x port=5432 dbname=postgres user=postgres sslmode=prefer"
PG18 默认客户端认证走 scram-sha-256,密码正常输即可。
一句话总结
CentOS7.9 编 PG18.4 纯 psql 客户端 = 正常 configure → 只 make -C src/interfaces 和 src/bin → 只 make install 这两个目录,服务端一行都不装。



CentOS7.9 编译安装配置-PG-18.4-客户端