目录

依赖安装

下载编译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插件编译部署相关推荐

  1. 鲲鹏920 centos7 postgresql12 postgis2.5.4编译

    postgresql12.2编译 依赖环境 这台机器编译过nginx,有一些基础环境 yum install -y gcc-c++ yum install -y pcre pcre-devel yum ...

  2. CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境

    我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...

  3. 袋鼠云平台代码规范化编译部署的提效性改进实践

    一.前言 作为全链路数字化技术与服务提供商,袋鼠云提供了从数据湖.大数据基础平台.离线开发.实时开发.数据服务.数据治理.指标管理.客户数据洞察.数据孪生可视化等全产品体系的服务. 围绕着" ...

  4. linux环境下编译部署php生产环境

    linux环境下编译部署php生产环境 版本控制 php:7.2.4 nginx:1.9.9 部分插件版本 xlswriter:1.3.3.2 redis:3.1.3 一.安装php 1.安装依赖(之 ...

  5. 编译部署LANP环境

    centos 7 vmware mysql-5.6.31 httpd-2.4.37 php-7.2.17 1.0新机器的初始化步骤 删除原来的yum源 [root@centos7 ~]#cd /etc ...

  6. jenkins+gitlab自动化编译部署方案探索及服务端编译webpack实战

    一. 背景 之前我们的开发流程为在本地进行webpack打包编译,然后svn提交源代码和编译后的代码.同时每次提交前也会从svn更新源代码和编译后的代码.这样做有几个缺点: 1. svn 更新和提交编 ...

  7. 【hardhat框架使用与常见编译部署的问题】

    hardhat框架使用与碰见的问题 日常开发 hardhat框架命令 从测试出发 hardhat部署上测试币安测试链 编译部署时常见问题 日常开发 最主要的教程:超级权威的官网 hardhat框架命令 ...

  8. tomcat-maven插件热部署(简洁版)

    最近在学ssm框架,为了提高学习效率,想使用tomcat-maven插件热部署,网上有很多关于这方面的文章,但是有很多坑. 自己总结了一下,简化了多余的配置,还有运行过程中发生异常的原因. 环境:ap ...

  9. maya python插件_Maya中Python代码插件编译技术视频教程

    本教程是关于Maya中Python代码插件编译技术视频教程,时长:16分,大小:45 MB,MP4高清视频格式,教程使用软件:Maya,附源文件,共1个章节,作者:Chayan Vinayak,语言: ...

最新文章

  1. c c++ 函数内数组初值_C/C++函数指针与指针函数
  2. Why Did the Cow Cross the Road III(树状数组)
  3. 洛谷——P2083 找人
  4. Spark MLlib编程API入门系列之特征选择之R模型公式(RFormula)
  5. 《Python和HDF 5大数据应用》——2.4 你的第一个HDF5文件
  6. 解决Lync2010错误:无法同步通讯簿信息
  7. Canvas动画 位图缓存提高效率和对应的内存问题
  8. Asp.net页面生存周期
  9. 佩服!终以一作发Science的她,竟也曾经历“直博转硕士”,艰难毕业!
  10. 第三章:使用 FildElements 来练习元素定位
  11. mint linux更新内核,如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核
  12. java 创建进程_Linux下创建进程简介
  13. mysql 唯一 标识符_mysql – 获取唯一标识符而不插入
  14. html input 的value变颜色,vue里input根据value改变背景色的实例
  15. ie8不支持console.log()的解决方法
  16. iOS开发:Pokemon Go试玩,未越狱的iPhone伪造GPS定位信息
  17. win10安装 Ruby on Rails 问题记录
  18. [原创]CobaltStrike Metasploit Shellcode一键免杀工具
  19. Grids for mac(强大的Instagram客户端工具)
  20. 信道滤波带宽,信号带宽,频率误差的关系

热门文章

  1. 前端学习(2799):实现资讯的结构和列表
  2. 前端学习(2150):webpack之配置babel
  3. 前端学习(2022)vue之电商管理系统电商系统之创建order分支
  4. 前端学习(1369):中间件应用
  5. minGW64安装和使用 极简教程
  6. 5月份 Github 上最热的十个 Python 项目,从Debug工具到AI水军、量化交易系统。
  7. vb.net中滚动条一直显示没有数据时也显示_Android Studio 中 System Trace 的新增功能...
  8. 数据结构之栈对逆BoLand表达式的计算
  9. Python 创建和使用类
  10. Thinkpad Access Connections实现快速的在各种网络间进行切换