從 Source 安裝(使用 Postgres 9.1 或更高版本)

本指南明確針對 Linux 機器上的 PostgreSQL 9.1 或更高版本。它使用 postgres 擴充套件功能,這將極大地改進對現有 postgres 安裝的擴充套件的匯入。如果你必須使用較舊版本的 postgres,請參閱官方文件

解決依賴關係

PostGIS 是一個複雜的專案,具有許多依賴項。為了繼續手動配置和構建過程,你必須解決這些依賴關係並手動或通過包管理器安裝以下軟體包。

最低要求

  • PostgreSQL 9.1 或更高版本。重要的是,安裝包括伺服器頭的資料庫,通常位於儲存庫的 package-manager 的 dev -packages 中。
  • GNU C 編譯器 gcc
  • GNU make 。完成構建過程。
  • Proj4 。投影庫,用於協調變換。
  • GEOS 。幾何庫,用於實現要素描述和簡單幾何。建議使用 3.5 或更高版本以使用更新的函式,例如 ST_ClipByBox2DST_Subdivide
  • GDAL ,1.9 或更高版本。一個為基於柵格和向量的地理空間資料實現抽象資料格式的庫。
  • LibXML2 ,版本 2.5 或更高版本。用於處理 XML,XSLT 和 DTD 的庫。
  • JSON-C ,0.9 或更高版本。用於以 JSON 格式建立輸出的庫

可選要求

獲取來源

要獲取原始碼,請下載最新的 tarball:

wget http://postgis.net/stuff/postgis-2.3.2dev.tar.gz
tar -xvzf postgis-2.3.2dev.tar.gz

或使用官方 SVN 儲存庫:

svn checkout http://svn.osgeo.org/postgis/trunk/ postgis-2.3.2dev

組態

如果你通過 SVN 獲取了源,則可以使用以下命令準備 config 指令碼:

./autogen.sh

要為特定計算機配置構建過程,請在專案資料夾中執行:

./configure

配置步驟有幾個可選引數。有關詳細說明,請參閱官方文件 ,這通常是可選的,僅適用於使用非預設安裝的伺服器。

建立

配置步驟成功完成後,將建立一個 makefile。要開始構建過程執行:

make

最後的輸出應該是:

"PostGIS was built successfully. Ready to install."

從 1.4.0 版開始,所有函式都有從文件生成的註釋。如果你希望稍後將這些註釋安裝到空間資料庫中,請執行需要 docbook 的命令。

make comments

安裝

安裝所有擴充套件程式:

make install

如果你使用的是 PostgreSQL 9.1 或更高版本,則會自動構建和安裝 PostGIS 擴充套件。如果你有不同的設定,則可以手動安裝必要的擴充套件。

在專案資料夾中:

cd extensions
cd postgis
make clean
make
make install

cd ..
cd postgis_topology
make clean
make
make install

cd ..
cd postgis_sfcgal
make clean
make
make install

cd ..
cd address_standardizer
make clean
make
make install
make installcheck

cd ..
cd postgis_tiger_geocoder
make clean
make
make install
make installcheck

如果要在其他計算機上手動安裝擴充套件,請將 extensions 資料夾中的以下檔案複製到目標的 PostgreSQL/share/extension 資料夾中。對於每個分機:

scp extensions/[EXTENSION]/sql/*.sql user@target:[POSTGIS_PATH]/share/extension

其中 [EXTENSION] 是所選副檔名(postgis,postgis_topology,postgis_sfcgal,address_standardizer,postgis_tiger_geocoder), [POSTGIS_PATH] 是目標計算機上的 PostGIS 安裝路徑。

驗證安裝

如果你沒有執行 postgres 資料庫服務,請先設定 postgres 資料庫 。使用以下方法連線資料庫:

su postgres -c psql

要驗證擴充套件是否可訪問,請在 psql-session 中執行以下查詢:

SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';

輸出應如下所示:

             name             | default_version | installed_version
------------------------------+-----------------+-------------------
 address_standardizer         | 2.3.2dev        | 2.3.2dev
 address_standardizer_data_us | 2.3.2dev        | 2.3.2dev
 postgis                      | 2.3.2dev        | 2.3.2dev
 postgis_sfcgal               | 2.3.2dev        |
 postgis_tiger_geocoder       | 2.3.2dev        | 2.3.2dev
 postgis_topology             | 2.3.2dev        |

(6 rows)

要執行深入的安裝後測試,請在專案資料夾中執行以下命令:

make check

這將使用生成的庫對照實際的 PostgreSQL 資料庫進行各種檢查和測試。