Linux環境PostGIS原始碼編譯安裝

槑孒發表於2024-10-23

前提條件

安裝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 root

warning: 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安裝問題記錄

相關文章