postgis 栅格数据_PostGIS入门篇 一 PostGIS安装
1.1 安装PostgreSQL
1.1.1 升级gcc
下载较新的gcc压缩文件并解压:
[root@ ~]# wget -c http://mirror.koddos.net/gcc/releases/gcc-9.2.0/gcc-9.2.0.tar.xz
[root@ ~]# tar xvf gcc-9.2.0.tar.xz
下载并安装gcc依赖:
[root@ ~]# cd gcc-9.2.0
[root@ gcc-9.2.0]# ./contrib/download_prerequisites
安装gcc,通过--prefix指定安装路径:
[root@ gcc-9.2.0]# ./configure --prefix=/usr/local/gcc-9.2.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib
#服务器如果核数较多可以使用并行编译,比如有2核
# make -j 4
#-j后的并行数量应等于核数的2倍,不要太多。
[root@ gcc-9.2.0]# make -j 4
[root@ gcc-9.2.0]# make install
配置环境变量:
[root@ gcc-9.2.0]# vi /etc/profile
#将gcc加入path,注意path里有其他bin不要改,在后面追加,以免影响其他系统
export GCC_HOME=/usr/local/gcc-9.2.0
export PATH=$GDAL_HOME/bin:$GCC_HOME/bin:$PATH
# :wq! 保存退出
#重启生效:
[root@ gcc-9.2.0]# source /etc/profile
验证gcc安装:
[root@ ~]# gcc --version
gcc (GCC) 9.2.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
移除操作系统自带的低版本的yum安装的gcc,如果安装过将会卸载:
[root@ ~]# yum remove gcc
更新系统库依赖,避免编译时发生http://glibcxx_x.x.xxx not found等lib包因版本差异导致的错误:
#先全局查询libstdc++.so.6包所在位置
[root@ ~]# find / -name libstdc++.so.6
/usr/lib64/libstdc++.so.6
/usr/lib/libstdc++.so.6
/usr/local/gcc-9.2.0/lib64/libstdc++.so.6
#其中/usr/local是我们刚刚安装的,/lib与/lib64我们不清楚是不是残留,所以必须用新的直接替换即可。
[root@ ~]# cp /usr/local/gcc-9.2.0/lib64/libstdc++.so.6 /usr/lib
[root@ ~]# cp /usr/local/gcc-9.2.0/lib64/libstdc++.so.6 /usr/lib64
1.1.2 其他依赖安装
[root@ ~]# yum install -y vim-enhanced.x86_64 gcc-java apr apr-devel openssl openssl-devel java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 perl-Module-Install.noarch readline-devel.x86_64
为了能在数据库中使用uuid,先要安装下uuid的库,(PostgreSQL13版本自带uuid,不需要安装这个):
# 下载uuid-1.6.2.tar.gz然后拷贝到安装服务器上。由于官方链接太烂,根本点不开,先暂时在百度网盘分享个资源:
[uuid-1.6.2.tar.gz](https://pan.baidu.com/s/1NSHU8WrczfGDDsxYhEcAQQ)
[root@ ~]# tar -zxvf uuid-1.6.2.tar.gz
[root@ ~]# cd uuid-1.6.2
[root@ ~]# ./configure
[root@ ~]# make
[root@ ~]# make install
1.1.3 新建用户
[root@ ~]# useradd postgres
1.1.4 PG12源码编译安装
[root@ ~]# wget https://ftp.postgresql.org/pub/source/v12.1/postgresql-12.1.tar.gz
[root@ ~]# tar -zxvf postgresql-12.1.tar.gz
[root@ ~]# cd postgresql-12.1
[root@ postgresql-12.1]# ./configure --prefix=/home/postgres --enable-thread-safety --with-uuid=ossp --with-libs=/usr/local/lib --with-includes=/usr/local/include
[root@ postgresql-12.1]# make -j 4
[root@ postgresql-12.1]# make install
# 安装contrib工具包
[root@ postgresql-12.1]# cd contrib
[root@ contrib]# make
[root@ contrib]# make install
1.1.5 文件权限
#把程序安装目录全部赋权给postgres用户
[root@ contrib]# chown -R postgres.postgres /home/postgres/
1.1.6 配置环境变量
[root@ contrib]# su - postgres
[postgres@ ~]$ vi .bashrc
#编辑内容如下:
PGHOME=/home/postgres
export PGHOME
PGDATA=$PGHOME/data
export PGDATA
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PGHOME/bin
export PATH
# wq! 保存退出
#重启生效
[postgres@ ~]$ source .bashrc
1.1.7 初始化数据库与启动
[postgres@ ~]$ initdb -D $PGDATA
[postgres@ ~]$ pg_ctl start -D $PGDATA
#登录数据库
[postgres@ ~]$ psql
psql (12.1)
Type "help" for help.
postgres=#
到此为止,数据库已经完成安装,但只能本机连接,性能参数配置是默认的。有时候希望其他客户端也能连接,需要设置$PGDATA中的pg_hba.conf与postgresql.conf中相关参数,这些内容可以详细查看其他PG相关的博客和书籍。
2 安装PostGIS
本文安装PostGIS 3.0,3.0依赖的库有geos,proj,gdal,libxml,json-c,protobuf,如何要支持三维需安装sfcgal,如果要做路网分析需安装pgrouting。
2.1 安装geos
[root@ ~]# wget https://download.osgeo.org/geos/geos-3.8.0.tar.bz2
[root@ ~]# tar -jxvf geos-3.8.0.tar.bz2
[root@ ~]# cd geos-3.8.0
#指定目录安装
[root@ geos-3.8.0]# ./configure --prefix=/usr/local/geos-3.8.0
[root@ geos-3.8.0]# make -j 4
[root@ geos-3.8.0]# make install
2.2 安装proj
[root@ ~]# wget http://download.osgeo.org/proj/proj-6.2.1.tar.gz
[root@ ~]# tar -zxvf proj-6.2.1.tar.gz
[root@ ~]# cd proj-6.2.1
#指定目录安装
[root@ proj-6.2.1]# ./configure --prefix=/usr/local/proj-6.2.1
[root@ proj-6.2.1]# make -j 4
[root@ proj-6.2.1]# make install
2.3 安装gdal
[root@ ~]# wget https://download.osgeo.org/gdal/3.0.2/gdal-3.0.2.tar.gz
[root@ ~]# tar -zxvf gdal-3.0.2.tar.gz
[root@ ~]# cd gdal-3.0.2
#编译时间比较久,指定目录安装,且绑定已安装的pg
[root@ gdal-3.0.2]# ./configure --prefix=/usr/local/gdal-3.0.2 --with-pg=/home/postgres/bin/pg_config
[root@ gdal-3.0.2]# make -j 4
[root@ gdal-3.0.2]# make install
2.4 安装jsonc,libxml
[root@ ~]# wget https://github.com/json-c/json-c/archive/json-c-0.13.1-20180305.tar.gz
[root@ ~]# tar -zxvf json-c-0.13.1-20180305.tar.gz
[root@ ~]# cd json-c-0.13.1-20180305
[root@ json-c-0.13.1-20180305]# ./configure --prefix=/usr/local/json-c-0.13.1
[root@ json-c-0.13.1-20180305]# make -j 4
[root@ json-c-0.13.1-20180305]# make install
[root@ ~]# wget https://github.com/GNOME/libxml2/archive/v2.9.7.tar.gz
[root@ ~]# tar -zxvf libxml2-sources-2.9.7.tar.gz
[root@ ~]# cd libxml2-2.9.7
[root@ libxml2-2.9.7]# ./configure --prefix=/usr/local/libxml2-2.9.7
[root@ libxml22.5-2.9.7]# make -j 4
[root@ libxml2-2.9.7]# make install
2.5 安装protobuf,protobuf-c
[root@ ~]# wget https://github.com/protocolbuffers/protobuf/archive/v3.10.1.tar.gz
[root@ ~]# tar -zxvf protobuf-3.10.1.tar.gz
[root@ ~]# cd protobuf-3.10.1
[root@ protobuf-3.10.1]# ./configure --prefix=/usr/local/protobuf-3.10.1
[root@ protobuf-3.10.1]# make -j 4
[root@ protobuf-3.10.1]# make install
#配置环境变量,增加下protobuf-3.10.1/bin
[root@ ~]# vi /etc/profile
export PROTOBUF_HOME=/usr/local/protobuf-3.10.1
export PATH=$GCC_HOME/bin:$PROTOBUF_HOME/bin:$PATH
#保存退出
[root@ ~]# source /etc/profile
#验证protobuf执行程序
[root@ ~]# protoc --version
libprotoc 3.10.1
#protobuf安装成功
[root@ ~]# wget https://github.com/protobuf-c/protobuf-c/releases/download/v1.3.2/protobuf-c-1.3.2.tar.gz
[root@ ~]# tar -zxvf protobuf-c-1.3.2.tar.gz
[root@ ~]# cd protobuf-c-1.3.2
#导入protobuf的pkgconfig,否则"--No package 'protobuf' found"
[root@ protobuf-c-1.3.2]# export PKG_CONFIG_PATH=/usr/local/protobuf-3.10.1/lib/pkgconfig
[root@ protobuf-c-1.3.2]# ./configure --prefix=/usr/local/protobuf-c-1.3.2
[root@ protobuf-c-1.3.2]# make -j 4
[root@ protobuf-c-1.3.2]# make install
#配置环境变量,增加下protobuf-c-1.3.2/bin
[root@ ~]# vi /etc/profile
export PROTOBUF_HOME=/usr/local/protobuf-3.10.1
export PROTOBUFC_HOME=/usr/local/protobuf-c-1.3.2
export PATH=$GCC_HOME/bin:$PROTOBUF_HOME/bin:$PROTOBUFC_HOME/bin:$PATH
#保存退出
[root@ ~]# source /etc/profile
2.6 安装sfcgal(三维,可选)
sfcgal需要cmkae编译,需先安装下cmake:
[root@ ~]# wget https://github.com/Kitware/CMake/releases/download/v3.16.2/cmake-3.16.2.tar.gz
[root@ ~]# tar -zxvf cmake-3.16.2.tar.gz
[root@ ~]# cd cmake-3.16.2
[root@ cmake-3.16.2]# ./configure --prefix=/usr/local/cmake-3.16.2
[root@ cmake-3.16.2]# make -j 4
[root@ cmake-3.16.2]# make install
#配置环境变量
[root@ ~]# vi /etc/profile
export CMAKE_HOME=cmake-3.16.2
export PATH=$GCC_HOME/bin:$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$PROTOBUFC_HOME/bin:$PATH
#保存退出
[root@ ~]# source /etc/profile
sfcgal依赖boost,cgal,需要提前编译,编译默认目录,避免编译sfcgal时各种找不到库的问题。
[root@ ~]# yum install boost-devel
[root@ ~]# wget https://github.com/CGAL/cgal/archive/releases/CGAL-4.13.tar.gz
[root@ ~]# tar -zxvf CGAL-4.13.tar.gz
[root@ ~]# cd CGAL-4.13
[root@ CGAL-4.13]# mkdir build && cd build
#cmake不要指定安装路径
[root@ build]# cmake ..
[root@ build]# make
[root@ build]# make install
编译sfcgal:
[root@ ~]# wget https://github.com/Oslandia/SFCGAL/archive/v1.3.7.tar.gz
[root@ ~]# tar -zxvf v1.3.7.tar.gz
[root@ ~]# cd SFCGAL-1.3.7
[root@ SFCGAL-1.3.7]# mkdir build && cd build
[root@ build]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/sfcgal-1.3.7 ..
[root@ build]# make -j 4
[root@ build]# make install
pgrouting可以单独安装,在之后文章里会单独介绍。
2.7 安装PostGIS
配置ld.so.conf:
[root@ ~]# vim /etc/ld.so.conf
#编辑内容如下
include ld.so.conf.d/*.conf
/home/postgres/lib
/usr/local/proj-6.2.1/lib
/usr/local/gdal-3.0.2/lib
/usr/local/geos-3.8.0/lib
/usr/local//sfcgal-1.3.7/lib64
/usr/local/json-c-0.13.1/lib
/usr/local/libxml2-2.9.7/lib
/usr/local/protobuf-3.10.1/lib
/usr/local/protobuf-c-1.3.2/lib
#编辑完成后wq!保存退出
#保存配置,重启生效
[root@ ~]# ldconfig -v
安装postgis:
[root@ ~]# wget http://download.osgeo.org/postgis/source/postgis-3.0.0.tar.gz
[root@ ~]# tar -zxvf postgis-3.0.0.tar.gz
[root@ ~]# cd postgis-3.0.0
#根据安装不同的要求,选择任意一个configure
#基本安装,不带sfcgal
[root@ postgis-3.0.0]# ./configure --prefix=/home/postgres --with-gdalconfig=/usr/local/gdal-3.0.2/bin/gdal-config --with-pgconfig=/home/postgres/bin/pg_config --with-geosconfig=/usr/local/geos-3.8.0/bin/geos-config --with-projdir=/usr/local/proj-6.2.1 --with-xml2config=/usr/local/libxml2-2.9.7/bin/xml2-config --with-jsondir=/usr/local/json-c-0.13.1 --with-protobufdir=/usr/local/protobuf-c-1.3.2
# 带protobuf,sfcgal安装
[root@ postgis-3.0.0]# ./configure --prefix=/home/postgres --with-gdalconfig=/usr/local/gdal-3.0.2/bin/gdal-config --with-pgconfig=/home/postgres/bin/pg_config --with-geosconfig=/usr/local/geos-3.8.0/bin/geos-config --with-projdir=/usr/local/proj-6.2.1 --with-xml2config=/usr/local/libxml2-2.9.7/bin/xml2-config --with-jsondir=/usr/local/json-c-0.13.1 --with-protobufdir=/usr/local/protobuf-c-1.3.2 --with-sfcgal=/usr/local/sfcgal-1.3.7/bin/sfcgal-config
[root@ postgis-3.0.0]# make -j 4
[root@ postgis-3.0.0]# make install
可能报错什么can not found lsqlite3等错误:
yum install sqlite-devel
验证安装:
[root@ ~]# su - postgres
[postgres@ ~]$ psql
psql (12.1)
Type "help" for help.
postgres=# create database mytest;
CREATE DATABASE
postgres=# \c mytest
You are now connected to database "mytest" as user "postgres".
#验证postgis扩展
mytest=# create extension postgis;
CREATE EXTENSION
#验证栅格类数据需要的raster扩展
mytest=# create extension postgis_raster;
CREATE EXTENSION
#如果安装带有sfcgal,验证下三维sfcgal扩展
mytest=# create extension postgis_sfcgal;
CREATE EXTENSION
如果一切顺利,安装结束。
postgis 栅格数据_PostGIS入门篇 一 PostGIS安装相关推荐
- 码云 Git 入门篇 ---简介、安装、使用
码云 Git 入门篇 -简介.安装.使用 这篇文章可以对刚入门gitee的朋友起到一点帮助的作用,也是我自己的一点点总结,能力一般,水平有限,如有不正确的地方请大家指正,如果觉得有帮助,请点一个赞,谢 ...
- 01-LATTICE入门篇之环境安装
最近使用了LATTICE的CrossLink 系列做了mipi转pixel的转换应用,从零开始学习了LATTICE的FPGA开发环境,在这里分享给大家,废话不多说,这篇主要讲环境安装. 1.官网下载软 ...
- web自动化测试入门篇02——selenium安装教程
- Eigen 使用指南(入门篇)
Eigen 使用指南(入门篇) 1 安装Eigen 1.1 Window10(64位)+Visual Studio2017 2 Eigen 的使用 2.1 矩阵类Matrix 1.2.2 矩阵初始化与 ...
- 基于QGIS初探PostgreSQL的PostGIS插件,包括YUM和编译安装PostGIS
写在前面:本文介绍 QGIS,只是为了展示怎么使用 PostGIS,因作者本人追求的是 PostgreSQL,所以本文的重点还是 PostGIS 这个 PostgreSQL 的插件,QGIS软件只做简 ...
- postgis 栅格数据_GeoServer发布PostGIS数据库中的栅格数据
1.安装软件环境 安装以下软件,并安装GeoServer imagemosaic拓展插件,用来连接并加载PostGIS数据库中的栅格数据. PostGIS 2.4,PostgreSQL 9.6,Geo ...
- node.js安装模式 的区别_Nodejs入门篇(一)
Nodejs入门篇(一) 一.Nodejs是什么? Nodejs是一个基于Chrome V8引擎的JavaScript运行环境,一个让JavaScript运行在服务端的开发平台:它用于方便地搭建响应速 ...
- Redis入门篇(安装与启动)
Redis入门篇(安装与启动) 一.Redis介绍 Redis是NoSql的一种,在弄清楚Redis是个什么玩意之前,先了解下NoSql是什么. 1.什么是NoSql NoSql,全名:Not Onl ...
- Git快速入门篇—— Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程)
Git快速入门篇-- Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程) 前言:我们平时在整理代码的时候,尤其是与别人一起开发项目的时候,常常涉及到代码的更新,因此代码版本问 ...
最新文章
- Python爱好者周知:Scikit-Learn中文文档正式发布
- 安装JDK出现Windows Installer程序包有问题,此安装需要的DLL不能运行...
- 游戏玩家行为基本模式的初探小汇
- yolov4网络结构_重磅更新!YoLov4最新论文!解读YoLov4框架!
- MATLAB机器学习系列-5 RBF、GRNN和PNN神经网络原理及其例子代码
- [转] 程序员面试题精选100题(35)-找出两个链表的第一个公共结点
- 2012黑龙江省赛J题-最小均值圈
- MFC和c#中模拟对另一进程的窗口按钮点击
- jquery点击事件传值加载页面_jQuery添加options点击事件并传值
- python 的案例实战_python案例实战之一
- wolfssl 何如 https post_干货:手把手教你优化关键词|亚马逊|流量|搜索量|长尾词|https...
- ubuntu下tftp服务器环境搭建
- 直连路由、主机路由以及选择顺序
- Python 中的 any(Python/any)
- fabric 中 peer 和 couch 容器中网络和数据存放目录地址
- 安卓手机优化,修改build.prop
- 批量搜索多个excel文件
- 【Linux CPUFreq模块】
- 【数字IC/FPGA】电平同步、脉冲同步、边沿同步
- ubuntu 20.04 安装 gedit
热门文章
- 没美术基础,做3D次世代建模,如何学习提高自身美术?
- centos7安装python3.x(多种方式)
- 以太传输介质-RJ45网线接法(直通线、交叉线以及全反线)
- 古剑奇谭三已取消该页导航,B站版本无法登陆
- vue—element 后台表格展示序号顺序
- 基于android的移动学习平台(前端APP+后端Java和MySQL)
- WAP2.0手机网站的开发
- 红黑树高度上限(2lg(n+1)证明.
- 机器人操作系统ROS(23)关于导航路径优化
- 置信区间(已知样本均值和总体的方差,求总体均值的置信区间)(n 30)