1. 程式人生 > >(8)Centos6.X原始碼安裝PostGIS(普通使用者)

(8)Centos6.X原始碼安裝PostGIS(普通使用者)

1.引言

      PostGISPostgreSQL 關係資料庫的空間操作擴充套件。它為 PostgreSQL 提供了儲存、查詢和修改空間關係的能力。本部落格中 PostgreSQL 指代基本的關係資料庫功能,而 PostGIS 指代擴充套件的空間操作特性。在本篇部落格中主要介紹如何使用普通使用者原始碼安裝PostGIS,安裝PostGIS需要首先安裝PostgreSQLpythonprojgeoslibxml2。本篇部落格的環境主要為:

  • 作業系統的版本為:Centos6.7
  • PostgreSQL的版本為:9.4.1
  • PostgreSQL的安裝目錄為:/home/wpx/usr/local/pgsql
  • proj的版本為:4.9.2
  • proj的安裝目錄為:/home/wpx/usr/local/proj
  • geos的版本為:3.6.2
  • geos的安裝目錄為:/home/wpx/usr/local/geos
  • libxml2的版本為:2.9.4
  • libxml2的安裝目錄為:/home/wpx/usr/local/libxml2
  • postgis的版本為:2.2.7
  • postgis的安裝目錄為:/home/wpx/usr/local/postgis
  • 操作使用者為:wpx

2. 原始碼安裝PostgreSQL

3. 安裝Python環境

為保證Python的多版本共存,在本部落格中使用pyenv,並安裝Python2.7.10版本,如何安裝pyenv,請參考部落格:

Centos安裝pyenv

4. 原始碼安裝proj

  • 原始碼安裝命令
//建立proj安裝目錄
mkdir -p ~/usr/local/proj
//解壓縮
tar -zxvf proj-4.9.2.tar.gz
cd proj-4.9.2
//配置proj的安裝目錄
./configure --prefix=/home/wpx/usr/local/proj
//編譯,並且安裝
make & make install 
  • 安裝成功後,/home/wpx/usr/local/proj下面應該有四個資料夾

這裡寫圖片描述

5. 原始碼安裝proj

  • 原始碼安裝命令
//建立geos安裝目錄(編譯需要gcc-c++)
mkdir -p ~/usr/local/geos
//解壓縮
tar -jxvf geos-3.6.2.tar.bz2 cd geos-3.6.2 //配置geos的安裝目錄 ./configure --prefix=/home/wpx/usr/local/geos //編譯 make //安裝(先編譯,後安裝。不知道為啥,同時執行編譯安裝不成功) make install
  • 安裝成功後,/home/wpx/usr/local/geos下面應該有三個資料夾

這裡寫圖片描述

6. 原始碼安裝libxml2

  • 原始碼安裝命令
//建立libxml2安裝目錄(編譯需要python-devel,且需要本地python環境,即python的目錄需要有許可權)
mkdir -p ~/usr/local/libxml2
//解壓縮
tar -zxvf libxml2-2.9.4.tar.gz 
cd libxml2-2.9.4
//配置libxml2安裝目錄
./configure --prefix=/home/wpx/usr/local/libxml2
//編譯
make
//安裝
make install 
  • 安裝成功後,/home/wpx/usr/local/libxml2下面應該有三個資料夾

這裡寫圖片描述

7. 原始碼安裝postgis

  • 原始碼安裝命令
//建立postgis安裝目錄
mkdir -p ~/usr/local/postgis
//解壓縮
tar -zxvf postgis-2.2.7.tar.gz
cd postgis-2.2.7
//配置postgis的環境,需要指定前面安裝軟體
./configure --prefix=/home/wpx/usr/local/postgis \ 
--with-pgconfig=/home/wpx/usr/local/pgsql/bin/pg_config  \ 
--with-geosconfig=/home/wpx/usr/local/geos/bin/geos-config \ 
--with-projdir=/home/wpx/usr/local/proj/  \ 
--with-xml2config=/home/wpx/usr/local/libxml2/bin/xml2-config \ 
--without-raster
//編譯
make
//安裝
make install 
  • 進入PostgreSQL的lib目錄下面,複製兩個檔案
cd ~/usr/local/pgsql/lib
cp ../../proj/lib/libproj.so.9.1.0 ./libproj.so.9 
cp ../../geos/lib/libgeos_c.so.1.10.2 ./libgeos_c.so.1
  • 安裝成功後,PostgreSQL的bin目錄下面,將會有相應的命令

這裡寫圖片描述

8. 測試PostGIS是否安裝成功

  • 測試指令
//啟動資料庫服務
/home/wpx/usr/local/pgsql/bin/pg_ctl -D /home/wpx/usr/local/pgsql/data -l logfile start
//登入資料庫,建立一個新的資料庫
psql -h localhost -p 5432 -U wpx -d postgres
CREATE DATABASE dx;
//將dx升級為空間資料庫(第一個是新增空間函式,第二個是建立spatial_ref_sys表)
psql -h localhost  -d dx -U wpx -f ../share/contrib/postgis-2.2/postgis.sql
psql -h localhost  -d dx -U wpx -f ../share/contrib/postgis-2.2/spatial_ref_sys.sql
  • 沒有報錯,顯示成功即可

這裡寫圖片描述