- 安装多个版本的时候会冲突,尤其是想安装测试版或不同的小版本的时候。
- 安装路径散落在系统的好几个目录中,记起来不方便。
- 因为安装到了系统目录,我们有时候需要用sudo执行或者需要用su 切换到postgres用户权限下去执行。
在Mac OS X下(译者亲测 10.11.4)
> cd /tmp > mkdir pg-build > wget 下载对应的源码包 > cd postgresql源码目录中 > ./configure --prefix=/tmp/pg-build > make > make install@H_403_0@在ubuntu下(译者亲测ubuntu16.04)
> cd /tmp > mkdir pg-build > wget 下载对应的源码包 > cd postgresql源码目录中 > ./configure --prefix=/tmp/pg-build --disable-rpath > export LD_RUN_PATH='$ORIGIN/../lib' > make > make install@H_403_0@然后,我们对编译的动态支持库文件进行谳整引用重定位
在Mac OS X下
find /tmp/pg-build/bin -type f | \ xargs -L 1 install_name_tool -change \ /tmp/pg-build/lib/libpq.5.dylib \ '@executable_path/../lib/libpq.5.dylib'@H_403_0@然后就可以了。
> cd $HOME > cp -R /tmp/pg-build pg > mkdir data > ./pg/bin/initdb data > ./pg/bin/pg_ctl -D data start@H_403_0@现在,你的pg就运行起来了,并且你可以把这个目录任意改名,放到你自己的任意目录,都可以运行了。 我一般测试多个版本的pg,都在自己的目录下建立pg931,pg943,pg952,pg6b1这样的目录,想用哪个用哪个。很方便。 @H_403_0@为了自动化的实现这个功能,我写了一个小脚本,可以很方便的编译、运行不同时期源码的数据库。代码很短,自己根据自己的需要改改,放到自己的PATH目录下,就会很方便了。 @H_403_0@[git-hub] https://github.com/lvbuwei/mypgscript