centos7 postgresql9和postgis2.1插件编译部署
目录
依赖安装
下载编译libgeos
下载编译proj4
编译Postgresql9
编译PostGIS2
启动postgresql服务
开通外部网络访问
数据库开启PostGIS扩展
查看PostGIS版本
升级PostGIS版本
依赖安装
这个命令里面安装的包可能会多,由于是编译GreenPlum用的,没有尝试最小安装
yum install -y epel-release
yum install -y \
apr-devel \
bison \
bzip2-devel \
cmake3 \
flex \
gcc \
gcc-c++ \
krb5-devel \
libcurl-devel \
libevent-devel \
libkadm5 \
libyaml-devel \
libxml2-devel \
libzstd-devel \
openssl-devel \
perl-ExtUtils-Embed \
python-devel \
python-pip \
readline-devel \
xerces-c-devel \
zlib-devel
yum install -y gdal-devel
yum install -y gdal-devel
下载编译libgeos
yum install -y wget
wget http://download.osgeo.org/geos/geos-3.8.0.tar.bz2
yum install -y bzip2
tar jxf geos-3.8.0.tar.bz2
#编译
./configure -prefix=/usr/local/geos && make && make install
下载编译proj4
wget http://download.osgeo.org/proj/proj-4.9.3.tar.gz #http://download.osgeo.org/proj/proj-6.2.1.tar.gz 注意项目需要的是4.x,其他版本不可用
tar zxf proj-4.9.3.tar.gz
cd proj-4.9.3
yum install -y libsqlite3x-devel
./configure -prefix=/usr/local/proj4 && make && make install
编译Postgresql9
#wget http://ftp.postgresql.org/pub/source/v9.6.9/postgresql-9.6.9.tar.gz
wget http://ftp.postgresql.org/pub/source/v9.6.9/postgresql-9.6.9.tar.bz2
tar jxvf postgresql-9.6.9.tar.bz2
cd postgresql-9.6.9
./configure -prefix=/usr/local/pgsql
make && make install
编译PostGIS2
#wget https://download.osgeo.org/postgis/source/postgis-2.2.8.tar.gz
wget https://download.osgeo.org/postgis/source/postgis-2.1.5.tar.gz
tar zxf postgis-2.1.5.tar.gz
cd postgis-2.1.5
./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-projdir=/usr/local/proj4
make
make报错
lwgeom_accum.c:109:46: error: ‘AggState {aka struct AggState}’ has no member named ‘aggcontext’; did you mean ‘aggcontexts’?
aggcontext = ((AggState *) fcinfo->context)->aggcontext;
搜索了好久才找到(http://osgeo-org.1560.x6.nabble.com/2-0-7-build-error-on-Fedora-22-td5214694.html)
vi postgis/lwgeom_accum.c
修改(参照https://trac.osgeo.org/postgis/browser/branches/2.1/postgis/lwgeom_accum.c)
108行附近
将
if (fcinfo->context && IsA(fcinfo->context, AggState))
aggcontext = ((AggState *) fcinfo->context)->aggcontext;
else if (fcinfo->context && IsA(fcinfo->context, WindowAggState))
aggcontext = ((WindowAggState *) fcinfo->context)->aggcontext;
else
改为
if ( ! AggCheckCallContext(fcinfo, &aggcontext) )
然后编译就通过了
看来是发包之后有人修复了这个bug……
#安装
make install
启动postgresql服务
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
#初始化数据库
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
#启动服务
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
#创建test库
/usr/local/pgsql/bin/createdb test
#psql登录到test库测试
/usr/local/pgsql/bin/psql test
#查看进程
ps -ef|grep postgres
开通外部网络访问
(默认绑定127.0.0.1仅能本机访问)
#开通防火墙
firewall-cmd --zone=public --add-port=5432/tcp --permanent
firewall-cmd --reload
#修改配置
cd /usr/local/pgsql/data
vi postgresql.conf
修改
listen_addresses = '0.0.0.0'
max_connections = 1000
#信任远程连接
vi pg_hba.conf
修改
host all all 0.0.0.0/0 md5
重启数据库
#设置postgres用户的密码
/usr/local/pgsql/bin/psql -U postgres
登录数据库,执行后提示符变为 'postgres=#'
ALTER USER postgres with encrypted password 'postgres'; 设置postgres用户密码为postgres
\q 退出数据库
此时可以通过外部数据库客户端软件连接进行数据库管理
数据库开启PostGIS扩展
连接一个数据库,执行sql语句
CREATE EXTENSION PostGIS
报错
ERROR: could not load library "/usr/local/pgsql/lib/postgis-2.1.so": libproj.so.12: 无法打开共享对象文件: 没有那个文件或目录
此时修改
vi /etc/ld.so.conf
添加
/usr/local/proj4/lib
#使配置生效
ldconfig
再次执行开启扩展
CREATE EXTENSION PostGIS
成功,public模式下出现spatial_ref_sys表
创建GIS类型字段成功
CREATE TABLE "public"."gis_test" (
"id" varchar(16) COLLATE "pg_catalog"."default" NOT NULL,
"name" varchar(255) COLLATE "pg_catalog"."default",
"the_geom" "public"."geometry",
CONSTRAINT "gis_test_pkey" PRIMARY KEY ("id")
)
;
查看PostGIS版本
SELECT PostGIS_version()
升级PostGIS版本
首先到源码目录/root/postgis-2.1.5
make uninstall
在到下载编译源码postgis-2.2.8
最后make install
重启Postgresql后,版本依然是旧的,此时DROP掉扩展
DROP EXTENSION PostGIS
提示有几个表已经使用了,需要把相应的表删除掉(注意做好备份)
再次
DROP EXTENSION PostGIS
此时
SELECT PostGIS_version()
看到版本是新的了
centos7 postgresql9和postgis2.1插件编译部署相关推荐
- 鲲鹏920 centos7 postgresql12 postgis2.5.4编译
postgresql12.2编译 依赖环境 这台机器编译过nginx,有一些基础环境 yum install -y gcc-c++ yum install -y pcre pcre-devel yum ...
- CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境
我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...
- 袋鼠云平台代码规范化编译部署的提效性改进实践
一.前言 作为全链路数字化技术与服务提供商,袋鼠云提供了从数据湖.大数据基础平台.离线开发.实时开发.数据服务.数据治理.指标管理.客户数据洞察.数据孪生可视化等全产品体系的服务. 围绕着" ...
- linux环境下编译部署php生产环境
linux环境下编译部署php生产环境 版本控制 php:7.2.4 nginx:1.9.9 部分插件版本 xlswriter:1.3.3.2 redis:3.1.3 一.安装php 1.安装依赖(之 ...
- 编译部署LANP环境
centos 7 vmware mysql-5.6.31 httpd-2.4.37 php-7.2.17 1.0新机器的初始化步骤 删除原来的yum源 [root@centos7 ~]#cd /etc ...
- jenkins+gitlab自动化编译部署方案探索及服务端编译webpack实战
一. 背景 之前我们的开发流程为在本地进行webpack打包编译,然后svn提交源代码和编译后的代码.同时每次提交前也会从svn更新源代码和编译后的代码.这样做有几个缺点: 1. svn 更新和提交编 ...
- 【hardhat框架使用与常见编译部署的问题】
hardhat框架使用与碰见的问题 日常开发 hardhat框架命令 从测试出发 hardhat部署上测试币安测试链 编译部署时常见问题 日常开发 最主要的教程:超级权威的官网 hardhat框架命令 ...
- tomcat-maven插件热部署(简洁版)
最近在学ssm框架,为了提高学习效率,想使用tomcat-maven插件热部署,网上有很多关于这方面的文章,但是有很多坑. 自己总结了一下,简化了多余的配置,还有运行过程中发生异常的原因. 环境:ap ...
- maya python插件_Maya中Python代码插件编译技术视频教程
本教程是关于Maya中Python代码插件编译技术视频教程,时长:16分,大小:45 MB,MP4高清视频格式,教程使用软件:Maya,附源文件,共1个章节,作者:Chayan Vinayak,语言: ...
最新文章
- c c++ 函数内数组初值_C/C++函数指针与指针函数
- Why Did the Cow Cross the Road III(树状数组)
- 洛谷——P2083 找人
- Spark MLlib编程API入门系列之特征选择之R模型公式(RFormula)
- 《Python和HDF 5大数据应用》——2.4 你的第一个HDF5文件
- 解决Lync2010错误:无法同步通讯簿信息
- Canvas动画 位图缓存提高效率和对应的内存问题
- Asp.net页面生存周期
- 佩服!终以一作发Science的她,竟也曾经历“直博转硕士”,艰难毕业!
- 第三章:使用 FildElements 来练习元素定位
- mint linux更新内核,如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核
- java 创建进程_Linux下创建进程简介
- mysql 唯一 标识符_mysql – 获取唯一标识符而不插入
- html input 的value变颜色,vue里input根据value改变背景色的实例
- ie8不支持console.log()的解决方法
- iOS开发:Pokemon Go试玩,未越狱的iPhone伪造GPS定位信息
- win10安装 Ruby on Rails 问题记录
- [原创]CobaltStrike Metasploit Shellcode一键免杀工具
- Grids for mac(强大的Instagram客户端工具)
- 信道滤波带宽,信号带宽,频率误差的关系
热门文章
- 前端学习(2799):实现资讯的结构和列表
- 前端学习(2150):webpack之配置babel
- 前端学习(2022)vue之电商管理系统电商系统之创建order分支
- 前端学习(1369):中间件应用
- minGW64安装和使用 极简教程
- 5月份 Github 上最热的十个 Python 项目,从Debug工具到AI水军、量化交易系统。
- vb.net中滚动条一直显示没有数据时也显示_Android Studio 中 System Trace 的新增功能...
- 数据结构之栈对逆BoLand表达式的计算
- Python 创建和使用类
- Thinkpad Access Connections实现快速的在各种网络间进行切换