PostgreSQL插件开发踩坑之路1
来源:互联网 发布:java使用md5加密解密 编辑:程序博客网 时间:2024/06/01 08:46
在根据博客http://big-elephants.com/2015-10/writing-postgres-extensions-part-i/中的教程创建自己的extension时,遇到了几个问题导致插件没有办法正确make install 和create extension,google了半天也没有发现原因,现在我把遇到的问题逐一介绍一下,虽然很简单也还是希望方便一下新人。
介绍一下我的环境:Ubuntu14.04系统,terminal 配置了zsh(好像没啥影响啊),PostgreSQL9.6.2版本源码简单版安装,没有配置环境变量(之后导致插件没有正常安装)
1. 在按照上述博客创建自己的extension之后,make install 首先遇到的问题是提示
Makefile:7: /usr/lib/postgresql/9.3/lib/pgxs/src/makefiles/pgxs.mk: No such file or directorymake: *** No rule to make target `/usr/lib/postgresql/9.3/lib/pgxs/src/makefiles/pgxs.mk'. Stop.
出现这个问题之后,根据google的结果发现是少安装了两个开发包,于是直接常规用户(非postgres用户非root用户)下直接sudo安装:
sudo apt-get install postgresql-server-dev-allsudo apt-get install postgresql-common
上面的错误不再报了
2. 解决了上一个错误之后,重新make install,马上出现另一个问题
/bin/mkdir -p '/usr/share/postgresql/9.3/extension'/bin/mkdir -p '/usr/share/postgresql/9.3/extension'/usr/bin/install -c -m 644 base36.control '/usr/share/postgresql/9.3/extension/'make: *** No rule to make target `base36--0.0.1.sql', needed by `installdata'. Stop.
一看是.sql文件出了问题,于是查看了Makefile文件,发现其中base36--0.0.1.sql部分文件名跟文件实际文件名不一致,于是修改文件名,这里我是直接使用base36--0.0.1.sql这个文件名,因为看到其他插件都是采用这种两杠的命名规则,目前还不知道原因,修改好文件名之后,正常make install 了,提示如下:
/bin/mkdir -p '/usr/share/postgresql/9.3/extension'/bin/mkdir -p '/usr/share/postgresql/9.3/extension'/usr/bin/install -c -m 644 base36.control '/usr/share/postgresql/9.3/extension/'/usr/bin/install -c -m 644 base36-0.0.1.sql '/usr/share/postgresql/9.3/extension/'为啥给cp到了9.3版本的目录下面了,先不管它,我连接了test数据库准备CREATE EXTENSION base36,结果提示我
ERROR: could not open extension control file "/usr/local/pgsql/share/extension/base36.control": No such file or directory这个明显是Makefile的target搞错了啊,查阅了文档,进入root用户开始修改环境变量
LD_LIBRARY_PATH=/usr/local/pgsql/libexport LD_LIBRARY_PATH/sbin/ldconfig /usr/local/pgsql/libPATH=/usr/local/pgsql/bin:$PATHexport PATH
阅读全文
0 0
- PostgreSQL插件开发踩坑之路1
- postgresql内核开发之HelloWorld入门
- postgresql内核开发之 SYSDATE实现
- postgresql内核开发之add_months函数实战
- QtCreator插件开发之学习日记1
- jQuery之插件开发
- openfire之插件开发
- postgresql学习之路-json
- Postgresql分布式插件plproxy
- 基于CentOS7开发之路 --- 第四章 :CentOS 7 安装 postgresql 9.5.0 数据库
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Eclipse插件开发之FindBugs插件
- Struts2中的拦截器
- python nonlocal关键字
- Python基础
- Python3[爬虫实战] 爬虫之scrapy爬取爱上程序网存MongoDB(android模块)
- python 知识点
- PostgreSQL插件开发踩坑之路1
- win32窗口程序-------3、位图及去除背景色
- (三)创建功能模块
- c_day05 联合体-枚举
- IoC之两种获得Bean容器的方法与区别
- 《effective c++》学习笔记(三)
- 获取iOS手机当前最上层的veiwcontroller
- java集合之ArrayList方法的使用实例
- mysql学习笔记