GIS-postgis 安装

Posted 山人在山上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GIS-postgis 安装相关的知识,希望对你有一定的参考价值。

最佳搭配:https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS

我将扩展放在pg的安装目录下 home/postgres/pgsql/other_lib/包名

1、Proj前置安装【Sqlite有版本要求】

注意:请确保sqlite3 版本大于3.11,如果高于此版本跳过

sqlite-autoconf-3390200.tar

1、源码解压并且进入目录【不要删除后面扩展插件会用到,如果删除还要重新./configure】

2、./configure --prefix=/usr/local

3、make && make install

4、mv /usr/bin/sqlite3 /usr/bin/sqlite3_old【不要以前的】

5、ls -l /usr/local/lib/*sqlite*

6、ls -l /usr/local/include/*sqlite*

7、ln -s /usr/local/bin/sqlite3   /usr/bin/sqlite3

8、echo "/usr/local/bin" > /etc/ld.so.conf.d/sqlite3.conf 【加载新安装的】

9echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf 【加载新安装的】

10export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" 【配置】

11ldconfig【重新加载】

2、Proj安装

Proj投影库用于在PostGIS中提供坐标投影支持。

sqlite3、libtiff、libcurl-devel 这些包不确定

1、解压安装 proj-8.0.0.tar.gz文件 

2、tar -zxvf proj-8.0.0.tar.gz

3、cd proj-8.0.0

4、./configure --prefix=/home/postgres/pgsql/other_lib/proj8 --without-curl

5、make && make install

3、geos前置安装【cmake有版本要求】

cmake-3.23.3-linux-x86_64.tar.gz

  1. tar -zxvf cmake-3.23.3-linux-x86_64.tar.gz
  2. Cd cmake-3.23.3-linux-x86_64
  3. ln -s  bin/cmake /usr/bin/cmake 创建软链接
  4. cmake -version 测试
  5. geos正式安装

Geos几何图形库,用于支持PostGIS中的几何信息处理,分析等功能,野可以直接认为geos是一个几何算法库

  1. tar -jxvf geos-3.10.2.tar.bz2
  2. cd geos-3.10.2
  3. ./configure --prefix=/home/postgres/pgsql/other_lib/geos3
  4. make && make install
  5. libxml前置安装

 

1、在线yum -y install python-devel

2、离线 python-devel-2.7.5.rpm

3、yum update python

4、yum -y update

5、yum -y install yum-utils

6、yum -y groupinstall development

7、yum update python 【可能python版本尤其问题请更新】

6、libxml安装

当前用于某些导入功能(st_geomfromGMLst_geomFromKML

  1. tar -zxvf libxml2-2.9.12.tar.gz
  2. cd libxml2-2.9.12
  3. ./configure --prefix=/home/postgres/pgsql/other_lib/libxml2
  4. make && make install
  1. Json-c安装-旧版本 【14之前】

当前用于通过功能ST_GeomFromGeoJson导入GeoJson数据

  1. tar -zxvf json-c-0.13.1-20180305.tar.gz
  2. cd json-c-json-c-0.13.1-20180305/
  3. ./configure --prefix=/home/postgres/pgsql/other_lib/json-c
  4. make && make install
  1. Json-c安装-新版本【待续】

  1. Gdal安装

用于PostGIS对栅格数据的支持

注意:这里对proj有版本要求【本机自带、后期安装】,导致不识别,所以编译请指定你上面安装的proj的安装路径

  1. tar -zxvf gdal-3.5.0rc1.tar.gz
  2. cd gdal-3.5.0
  3. ./configure --prefix=/home/postgres/pgsql/other_lib/gdal --with-proj=/home/postgres/pgsql/other_lib/proj8 此处指定proj安装路
  4. make && make install
  1. postgis 安装
  1. 配置etc/ld.so.conf 指向前面安装目录下的lib

include /home/postgres/pgsql/lib

include /home/postgres/pgsql/other_lib/gdal/lib

include /home/postgres/pgsql/other_lib/geos3/lib64

include /home/postgres/pgsql/other_lib/json-c/lib

include /home/postgres/pgsql/other_lib/libxml2/lib

include /home/postgres/pgsql/other_lib/proj8/lib

echo "/home/postgres/pgsql/lib" > /etc/ld.so.conf.d/postgresql.conf

echo "/home/postgres/pgsql/other_lib/gdal/lib">/etc/ld.so.conf.d/gdal.conf

echo "/home/postgres/pgsql/other_lib/proj8/lib" > /etc/ld.so.conf.d/proj.conf

echo "/home/postgres/pgsql/other_lib/geos3/lib64" > /etc/ld.so.conf.d/geos.conf

echo "/home/postgres/pgsql/other_lib/libxml2/lib" > /etc/ld.so.conf.d/libxml2.conf

echo "/home/postgres/pgsql/other_lib/json-c/lib" >/etc/ld.so.conf.d/json-c.conf

  1. ldconfig
  2. tar -zxvf postgis-3.2.1.tar.gz
  3. ./configure --with-pgconfig=/home/postgres/pgsql/bin/pg_config --with-geosconfig=/home/postgres/pgsql/other_lib/geos3/bin/geos-config --with-gdalconfig=/home/postgres/pgsql/other_lib/gdal/bin/gdal-config --with-projdir=/home/postgres/pgsql/other_lib/proj8 --with-jsondir=/home/postgres/pgsql/other_lib/json-c --with-xml2config=/home/postgres/pgsql/other_lib/libxml2/bin/xml2-config --without-protobuf  忽略这个配置如果不忽略会报错
  4. Cd /home/postgres/pgsql/bin
  5. 执行 ./psql
  6. 开始执行扩展语句

    ACREATE EXTENSION postgis;

B、CREATE EXTENSION fuzzystrmatch;

注意:这里可能会出现错误 类似fuzzystrmatch 找不到

请进入postgresql 源码下

/home/postgres/postgres+gis相关14/postgresql-14.2/contrib/fuzzystrmatch

执行 make && make install

若果源码被删除请重新解压并./configure

C、CREATE EXTENSION postgis_tiger_geocoder;

D、CREATE EXTENSION address_standardizer;

E、CREATE EXTENSION postgis_topology;

注意:projjson-c 指向的都是生成的安装目录,其余的都是bin下的配置文件

  注意:新建数据库 要执行上面五条语句才能导入shap

11、protobuf安装 未完成验证

1、wget https://github.com/protocolbuffers/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz

2、tar zxvf protobuf-2.6.1.tar.gz

3、cd protobuf-2.6.1

4、./configure --prefix=/usr/local/protobuf

5、make && make install

export PATH=/usr/local/protobuf/bin:$PATH

分清全局安装与本地安装

参考技术A 分清全局安装与本地安装

npm 包管理工具-分清全局安装与本地安装

四、npm 包管理工具

4.1 分清全局安装与本地安装

刚学习 npm 的时候,官方教程在介绍 -g 参数时是这么描述的:“加上 -g

参数是全局安装,否则本地安装”。这种说话说一半的感觉真的很让人讨厌,什么是全局什么是本地完全没有介绍。以至于后来很长一段时间才搞明白这个概念。虽然是个小知识点,但我觉得有必要在学习模块安装之前先介绍一下。

1. 全局安装和本地安装都安装到了哪?

官方文档:使用 -g 安装的模块为全局安装,否则为本地安装。

使用 -g 安装全局模块

$ npm install express -g

不使用 -g 安装本地模块

$ npm install path

那么问题来了,全局模块和本地模块都安装到哪了?

全局模块安装路径

// 输入指令查询全局模块安装路径$ npmlist-g --depth=0

查询全局模块安装路径

本地模块安装路径

本地模块安装路径

本地模块安装在当前目录下的 node_modules 目录下。

以上图为例:安装本地模块的当前目录是 D:\code,那么在该目录下会自动创建 node_modules 目录(如果之前有这个目录就不会创建了),在 node_modules 目录下就可以找到刚才安装的 path 模块了。

2. 全局安装和本地安装的包有啥区别?

我们将一些包全局安装,另一些包本地安装,二者有什么区别呢?

官方的解释是:

全局安装的包直接安装到计算机中,只需安装一次,以后在计算机的任何位置都可以使用这个包;

看本地安装包安装到哪儿可以知道本地包是安装在当前目录下的,也就是说,只有在当前目录下才可以使用安装的本地包。比如上面贴的图片中安装的本地包 path,只有在 D:\code 目录下才能使用这个包,换做其它任何目录是不能使用它。

全局安装与本地安装

总结:全局安装安装一次重复使用,本地安装使用什么安装什么。

3. 哪些包我应该全局安装,哪些包又应该本地安装?

既然全局安装安装一次就可以重复使用,那么干嘛不是所有包都使用全局安装呢?

回答上面那个问题之前,先来解释下另一个问题:哪些包应该全局安装?

约定俗成的,对于那些提供命令行工具的包进行全局安装,其它包本地安装。

举例说明:

安装 dva-cli 包

$ npm install dva-cli -g

使用命令行工具输入指令 dva new 创建 dva 脚手架

$ dvanewdva-demo

像这种能提供指令的包通常进行全局安装

安装 eslint 包

$ npm install eslint -g

使用指令 --init 设置一个配置文件

$ eslint --init

像这种能提供指令的包通常进行全局安装

总结:不用管上面两个案例的指令具体是什么,只要提供指令的包都建议使用全局安装;其它包打包是提供一个功能,用于解决某一需求,建议安装成本地包。

你可能还会困惑,我刚开始学习 npm 还不知道哪些包是否提供指令,应该怎么办?没有关系,不知道的全部安装成本地包,在实践中如果发现这个包提供指令,也可以使用后面章节会提到的卸载包,再重新进行全局安装即可。

以上是关于GIS-postgis 安装的主要内容,如果未能解决你的问题,请参考以下文章

pg安装入门

GitLab安装和配置(Docker)

GitLab安装和配置(Docker)

GitLab安装和配置(Docker)

GitLab安装和配置(Docker)

WebGIS开源解决方案之环境搭建