从 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_ClipByBox2D 和 ST_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 数据库进行各种检查和测试。