从 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 格式创建输出的库

可选要求

  • GTK (需要 GTK + 2.0,2.8 +)来编译 shp2pgsql-gui。
  • SFCGAL 1.1 版(或更高版本)可用于为 PostGIS 提供额外的 2D 和 3D 高级分析功能。
  • PCRE 。使用 Perl 5 语法进行正则表达式模式匹配的库。如果你想使用 Adress Standardizer, 则需要此库。
  • CUnit 。回归测试所需的单元测试实用程序。
  • 构建文档需要 DocBook (xsltproc)。
  • 构建 PDF 格式的文档需要 DBLatex
  • ImageMagick 需要生成文档中使用的图像。

获取来源

要获取源代码,请下载最新的 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 数据库进行各种检查和测试。