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


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 这两个目录,服务端一行都不装。




分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS