编译环境为CentOS7.9 x64
安装必要包
yum install gcc bison flex readline readline-devel openssl openssl-devel libxml2 libxml2-devel -y
添加pg用户
adduser postgres
下载源码
切换到 postgres 用户,执行
wget -O postgres-REL_10_1.zip https://codeload.github.com/postgres/postgres/zip/refs/tags/REL_10_1
配置
./configure --prefix=`pwd`/release --with-openssl --without-ldap --with-libxml --enable-thread-safety --enable-debug
- –prefix=`pwd`/release: 指定安装目录为当前目录下的release。
- –enable-debug: 保留语法符号,避免install时目标文件被strip掉了符号,调试时无法看到堆栈函数和变量名。
如果你先前已经执行./configure过,但是你想重新来过,你可以使用下面的命令恢复原状:
make distclean
- make clean只是清除编译产生的中间和目标文件。
- make distclean可以清除configure产生的文件和安装目录,反正就是恢复到初始状态。
如果configure过程中提示缺少包,参考:https://blog.csdn.net/qq_33714590/article/details/64437734
编译
修改 src/Makefile.global 中的编译选项:O2改为O0,这样编译出来未优化,方便调试代码。
在根目录下,执行编译:
make -j4
安装
在根目录下,执行:
make install
会安装到你configure配置的 –prefix 指定的目录,我是在当前目录的release下:
启动
进入bin目录,初始化数据库:
$ ./initdb -D …/data -Upostgres -W
启动:
$ ./pg_ctl start -D …/data
连接:
./psql -d postgres -Upostgres -W