开发者社区> kkkkkkkkjj> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: postgresql,python,build relocation
+关注继续查看

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

原文键接

感谢原文作者给出的精彩方法

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PostgreSQL 创建数据表
PostgreSQL 创建数据表
0 0
测试创建 PolarDB for PostgreSQL 数据库和连接数据库
测试创建 PolarDB for PostgreSQL 数据库和连接数据库
0 0
『PostgreSQL』PGSQL手动创建Sequence序列
📣读完这篇文章里你能收获到 - 在PostgreSQL中对Sequence的管理及使用
0 0
云原生 PostgreSQL - CrunchyData PGO 教程:创建、连接、删除 Postgres 集群
云原生 PostgreSQL - CrunchyData PGO 教程:创建、连接、删除 Postgres 集群
0 0
LXJ
PostgreSQL创建只读用户
PostgreSQL创建只读用户
0 0
如何在Kubernetes里给PostgreSQL创建secret
如何在Kubernetes里给PostgreSQL创建secret
0 0
【RDS MySQL】为应用选择和创建最佳索引,加速数据读取
在工作中,由于SQL问题导致的数据库故障层出不穷,索引问题是SQL问题中常见的一种,例如:无索引,隐式转换,索引创建不合理。
0 0
PostgreSQL 创建B-Tree索引的过程
Postgres支持B-tree, hash, GiST, and GIN,也支持用户通过Gist自定义索引方法,比如时空数据库的R-Tree索引。
0 0
PolarDB-X 1.0-用户指南-私有RDS管理-创建高权限账号
本文介绍如何在控制台上为私有定制RDS实例创建高权限账号。
0 0
PostgreSQL 12: 新增 pg_stat_progress_create_index 视图监控索引创建进度
PostgreSQL 12 版本之前,对PostgreSQL大表创建索引时是一个比较痛苦的过程,创建索引过程中无法得知索引创建进度,PostgreSQL 12 在运维监控功能方面得到增强,新增 pg_stat_progress_create_index 视图可以监控索引的创建进度,本文简单演示。
1039 0
+关注
kkkkkkkkjj
多年码农,喜爱python和postgresql
文章
问答
文章排行榜
最热
最新
相关电子书
更多
云数据库RDS MySQL从入门到高阶
立即下载
PolarDB for PostgreSQL 源码与应用实战
立即下载
PolarDB for PostgreSQL 开源必读手册
立即下载