Linux数据库

推荐列表 站点导航

当前位置:首页 > 服务器技术 > Linux数据库 >

创建不用执行sudo可绿色的PostgreSQL

来源:网络整理  作者:网友投稿  发布时间:2020-12-29 23:05
PostgreSQL安装的时候(仅指Linux和MacOSX),往往会安装系统目录中,这样做有几点不方便。 1.安装多个版本的时候会冲突,...

PostgreSQL安装的时候(仅指Linux和MacOSX),往往会安装系统目录中,这样做有几点不方便。

1.安装多个版本的时候会冲突,尤其是想安装测试版或不同的小版本的时候。
2.安装路径散落在系统的好几个目录中,记起来不方便。
3.因为安装到了系统目录,我们有时候需要用sudo执行或者需要用su 切换到postgres用户权限下去执行。

尤其是pg的开发人员,可能需要安装不同的版本,或者要自己统计不同的时间的测试版,如何快速在的不同的测试版之间进行启停数据库,有没有好办法解决这两个问题呢?


下面我们演示在Mac OS X 和Linux下解决这些问题的办法。
在Mac OS X下(译者亲测 10.11.4)

> cd /tmp
> mkdir pg-build
> wget 下载对应的源码包
> cd postgresql源码目录中
> ./configure --prefix=/tmp/pg-build
> make
> make install


在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

然后,我们对编译的动态支持库文件进行谳整引用重定位


在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'

然后就可以了。

> cd $HOME
> cp -R /tmp/pg-build pg
> mkdir data
> ./pg/bin/initdb data
> ./pg/bin/pg_ctl -D data start


现在,你的pg就运行起来了,并且你可以把这个目录任意改名,放到你自己的任意目录,都可以运行了。 我一般测试多个版本的pg,都在自己的目录下建立pg931,pg943,pg952,pg6b1这样的目录,想用哪个用哪个。很方便。

为了自动化的实现这个功能,我写了一个小脚本,可以很方便的编译、运行不同时期源码的数据库。代码很短,自己根据自己的需要改改,放到自己的PATH目录下,就会很方便了。


[git-hub] https://github.com/lvbuwei/mypgscript

相关热词:

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!

本文地址: https://v30.fanwenzhu.com/server/sql/10854.shtml

相关文章
Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

创建不用执行sudo可绿色的PostgreSQL

2020-12-29 编辑:网友投稿

PostgreSQL安装的时候(仅指Linux和MacOSX),往往会安装系统目录中,这样做有几点不方便。

1.安装多个版本的时候会冲突,尤其是想安装测试版或不同的小版本的时候。
2.安装路径散落在系统的好几个目录中,记起来不方便。
3.因为安装到了系统目录,我们有时候需要用sudo执行或者需要用su 切换到postgres用户权限下去执行。

尤其是pg的开发人员,可能需要安装不同的版本,或者要自己统计不同的时间的测试版,如何快速在的不同的测试版之间进行启停数据库,有没有好办法解决这两个问题呢?


下面我们演示在Mac OS X 和Linux下解决这些问题的办法。
在Mac OS X下(译者亲测 10.11.4)

> cd /tmp
> mkdir pg-build
> wget 下载对应的源码包
> cd postgresql源码目录中
> ./configure --prefix=/tmp/pg-build
> make
> make install


在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

然后,我们对编译的动态支持库文件进行谳整引用重定位


在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'

然后就可以了。

> cd $HOME
> cp -R /tmp/pg-build pg
> mkdir data
> ./pg/bin/initdb data
> ./pg/bin/pg_ctl -D data start


现在,你的pg就运行起来了,并且你可以把这个目录任意改名,放到你自己的任意目录,都可以运行了。 我一般测试多个版本的pg,都在自己的目录下建立pg931,pg943,pg952,pg6b1这样的目录,想用哪个用哪个。很方便。

为了自动化的实现这个功能,我写了一个小脚本,可以很方便的编译、运行不同时期源码的数据库。代码很短,自己根据自己的需要改改,放到自己的PATH目录下,就会很方便了。


[git-hub] https://github.com/lvbuwei/mypgscript

本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供学习参考!
本文地址为 https://v30.fanwenzhu.com/server/sql/10854.shtml

相关文章

风云图片

推荐阅读

返回Linux数据库频道首页