Linux环境PostGIS源码编译安装

news/2024/10/23 0:53:43

前提条件

安装PostGIS之前必须先安装proj,geos,gdal

1、安装proj8

下载proj-8.1.0.tar.gz :http://download.osgeo.org/proj/proj-8.1.0.tar.gz

[root@gyl soft]# tar xf proj-8.1.0.tar.gz
[root@gyl soft]# cd proj-8.1.0
[root@gyl proj-8.1.0]# ./configure --prefix=/usr/local/postgresql/plugin/proj
[root@gyl proj-8.1.0]# make && make install#等待安装完成...#配置和加载动态链接库:[root@gyl proj-4.8.0]# vim /etc/ld.so.conf.d/proj-8.1.0.conf/usr/local/postgresql/plugin/proj/lib[root@gyl proj-4.8.0]# ldconfig

2、安装geos

下载geos-3.12.0.tar.bz2的链接为:http://download.osgeo.org/geos/geos-3.12.0.tar.bz2

[root@gyl soft]# bzip2 -d geos-3.12.0.tar.bz2[root@gyl soft]# tar xf geos-3.12.0.tar[root@gyl geos-3.12.0]# ./configure --prefix=/usr/local/postgresql/plugin/geos......[root@gyl geos-3.12.0]# make && make install......#配置和加载动态链接库:[root@gyl geos-3.12.0]#  vim /etc/ld.so.conf.d/geos-3.12.0.conf/usr/local/postgresql/plugin/geos/lib64[root@gyl geos-3.12.0]# ldconfig

3、安装gdal

下载gdal-3.7.3.tar.gz的链接为:http://download.osgeo.org/gdal/3.7.3/gdal-3.7.3.tar.gz

[root@gyl soft]#tar xf gdal-3.7.3.tar.gz[root@gyl soft]# cd gdal-3.7.3[root@gyl gdal-3.7.3]# ./configure --prefix=/usr/local/postgresql/plugin/gdal[root@gyl gdal-3.7.3]#make && make install......#配置和加载动态链接库:[root@gyl gdal-3.7.3]# vim /etc/ld.so.conf.d/gdal-3.7.3.conf/usr/local/postgresql/plugin/gdal/lib64[root@gyl gdal-3.7.3]# ldconfig

4、安装PostGIS

下载postgis-3.4.3.tar.gz的链接为:http://download.osgeo.org/postgis/source/postgis-3.4.3.tar.gz

[root@gyl soft]# tar xf postgis-3.4.3.tar.gz
[root@gyl soft]# cd postgis-3.4.3
[root@gyl postgis-3.1.0]# ./configure --prefix=/usr/local/postgresql/plugin/postgis --with-pgconfig=/usr/local/postgresql/bin/pg_config --with-geosconfig=/usr/local/postgresql/plugin/geos/bin/geos-config --with-gdalconfig=/usr/local/postgresql/plugin/gdal/bin/gdal-config --with-projdir=/usr/local/postgresql/plugin/proj

如果报这个错误信息:

configure: error: could not find xml2-config from libxml2 within the current path. You may need to try re-running configure with a --with-xml2config parameter.

解决办法:下载这个包并安装

点击查看详情
查看是否存在xml2-config文件,结果不存在
[root@node01 postgis-3.4.3]# find / -name "xml2-config"查看是否已经安装了libxml2和libxml2-devel[root@node01 postgis-3.4.3]# rpm -qa |grep  libxml2
libxml2-2.7.6-14.el6.x86_64
libxml2-python-2.7.6-14.el6.x86_64#没有libxml2-devel这个下载libxml2-devel压缩包并安装
下载地址:http://mirror.centos.org/centos/7/os/x86_64/Packages/libxml2-devel-2.9.1-6.el7.5.x86_64.rpm#安装
[root@gyl soft]# rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm如果出现error: Failed dependencies ,就在后面加参数 --nodeps --force,其作用是不再分析包之间的依赖关系而直接安装#安装
[root@gyl soft]# rpm -ivh libxml2-devel-2.9.1-6.el7.5.x86_64.rpm --nodeps --force如果出现错误:warning: user mockbuild does not exist - using rootwarning: group mockbuild does not exist - using root
解决办法:新建一个组和一个帐号[root@gyl soft]#gourpadd mockbuild
[root@gyl soft]#useradd mockbuild -g mockbuild

编译安装

[root@gyl postgis-3.4.3]# make & make install
......make[2]: Leaving directory `/home/tools/postgis-3.4.3/extensions/postgis_topology'make[1]: Leaving directory `/home/tools/postgis-3.4.3/extensions'

5、检查PostGIS是否安装成功

在Navicat中查看是否有这个表

6、开启postgis插件

开启postgis插件
在sql中执行

create extension postgis;

用sql语句查询版本号:

select postgis_version();

用sql语句查询是否启用成功:

select * from pg_available_extensions where name like 'postgis%';

如果执行postGIS插件初始化的时候出现错误

解决方案:
环境变量配置问题解决方案如下:

切换到root用户:su root
打开: vi /etc/ld.so.conf
添加:/usr/local/lib
添加:/usr/local/pgsql/lib
退出执行 :ldconfig
重启pgsql: service postgresql restart

linux离线安装postgresql和postgis插件
PostGIS安装问题记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/74884.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

The 2022 ICPC Asia Xian Regional Contest 前六题

VP一场,成都赛前找手感,这次还不戳,前三题略讲The 2022 ICPC Asia Xian Regional Contest 签到题题解 CFJ J. Strange Sum 易证最多只能选两个,从大到小排序后 \(\max(0, a_1) + \max(0, a_2)\) 即为所求。 void solve(){cin>>n;vector<ll>a(n+1);for(int i=1;…

利用数组处理批量数据

数组是一组有序数据的集合。数组中各数据的排列有一定规律,下标代表数据在数组中的序号 用一个数组名和下标来唯一的确定数组中的元素 数组中的每一个元素都属于同一个数据类型。不能把不同类型的数据放在同一个数组中 将数组和循环结合起来,可以有效的处理大批量的数据 怎样…

执行yum install 的时候提示【没有可用的软件包】的解决方案

这种情况,可能是yum 源不正确的问题,解决方案如下: 1.执行cd /etc/yum.repos.d,进入这个目录下,查看文件是否存在并检查文件内容的正确性 2、CentOS-Base.repo文件可以在网上下载一个,以下是范文# CentOS-Base.repo # # The mirror system uses the connecting IP addres…

newc++file.cpp在哪

本人的newc++file.cpp文件在C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCProjectItems可以在这个cpp文件里面自己选择是否写#define _CRT_SECURE_NO_WARNINGS 如果写了,则在visual studio中新建的cpp文件都有这个这个预处理命令主要是为…

Android13冻结进程分析:如何提高设备性能和用户体验

本文介绍了Android13中的冻结进程功能,它是一种重要的资源管理策略,可以提高系统性能和稳定性,同时最大限度地节省设备的资源和电池消耗。 文章讨论了如何合理分配资源,包括CPU、内存等,以提高设备性能和用户体验。此外,文章还提到了冻结进程对应用程序线程的影响,并介绍…

一图总结sql语言的最常用知识

一, 五大类sql语言DDL Data Definition Language, 数据定义语言,用于定义不同的数据字段、数据库、表、列、索引。如:create、drop、alter等DML Data Manipulation Language,数据操作语言,用于添加、删除、修改、查询数据的完整性。如:insert、 update 、 delete 等DQL Data…

10/22二叉树 求度为1的结点个数

include using namespace std; typedef struct BiNode { char data; struct BiNode* lchild, * rchild; }BiTNode, * BiTree; void CreateBiTree(BiTree& T)//创建一个二叉树 { char ch; cin >> ch; if (ch == #) T = NULL; else { T = new BiTNode; T->data = c…

初识封装

1.理解:“高内聚,低耦合” 高内聚即是说在内部繁琐的代码细节都由我们自己一人完成,包装起来,不让他人看见。而低耦合则是给用户一些较低的权限去使用软件。 2.铭记:属性私有,get/set 3.private:用于私有属性,与public形成反差,私有后的属性无法被随意调用。 如图: 4…