安装

目录

有关下载和安装适用于不同操作系统的二进制文件的说明、本文档中未包含的其他注释和更正,可以在 安装维基 中找到

使用pgRouting需要安装PostGIS,请阅读本 安装指南 中有关安装的信息

简洁版本

解压 tar 压缩文件

tar xvfz pgrouting-4.0.0.tar.gz
cd pgrouting-4.0.0

假设您的搜索路径中有所有依赖项,则进行编译:

mkdir build
cd build
cmake  ..
make
sudo make install

安装 pgRouting 后,需要在您想要使用它的每个数据库中启用它。

createdb routing
psql routing -c 'CREATE EXTENSION PostGIS'
psql routing -c 'CREATE EXTENSION pgRouting'

获取来源

pgRouting 最新版本可以在 https://github.com/pgRouting/pgrouting/releases/latest 中找到

要下载此版本:

wget -O pgrouting-4.0.0.tar.gz    https://github.com/pgRouting/pgrouting/archive/v4.0.0.tar.gz

转到 简洁版本 以获取有关提取 tar 包和编译 pgRouting 的更多说明。

git

下载存储库

git clone git://github.com/pgRouting/pgrouting.git
cd pgrouting
git checkout v4.0.0

请参阅 简洁版本 获取有关编译 pgRouting 的更多说明(从 GitHub 下载 pgRouting 存储库时不涉及 tar 文件)。

在数据库中启用和升级

启用数据库

pgRouting 是 PostgreSQL 扩展,依赖 PostGIS 向最终用户提供功能。 下面给出的代码演示了在数据库中启用 PostGIS 和 pgRouting。

CREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;

在数据库中启用 PostGIS 和 pgRouting 后检查它们的版本。

SELECT PostGIS_full_version();
SELECT * FROM pgr_version();

升级数据库

To upgrade pgRouting in the database to version 4.0.0 use the following command:

ALTER EXTENSION pgrouting UPDATE TO "4.0.0";

更多信息可以在 https://www.postgresql.org/docs/current/sql-createextension.html 中找到

依赖

编译依赖

为了能够编译 pgRouting,请确保满足以下依赖项:

  • C 和 C++0x编译器

    • 使用 Boost 1.56 到 Boost 1.74 进行编译需要具有 C++03 或 C++ 11 标准支持的 C ++编译器

    • 使用 Boost 1.75 进行编译需要具有 C++ 14 标准支持的 C++ 编译器

  • Postgresql 版本 = PostgreSQL 支持的版本

  • Boost 图库 (BGL)。 版本 >= 1.56

  • CMake >= 3.2

可选的依赖项

用于用户文档

  • Sphinx >= 1.1

  • Latex

对于开发者文档

  • Doxygen >= 1.7

供测试用

  • pgtap

  • pg_prove

用于使用:

  • PostGIS版本 >= 2.2

示例:在 Linux 上安装依赖项

安装编译依赖项

数据库依赖

sudo apt install postgresql-15
sudo apt install postgresql-server-dev-15
sudo apt install postgresql-15-postgis

配置 PostgreSQL

进入psql控制台

sudo systemctl start postgresql.service
sudo -i -u postgres
psql

退出 psql 控制台

q

直接进入psql控制台,无需切换角色,可以通过以下命令完成

sudo -u postgres psql

然后使用上面给出的方法退出psql控制台

检查 PostgreSQL 版本

psql --version

或者

使用上面给定的方法进入psql控制台,然后输入

SELECT VERSION();

创建 PostgreSQL 角色

sudo -i -u postgres
createuser --interactive

或者

sudo -u postgres createuser --interactive

PostgreSQL 提供的默认角色是 postgres。 要创建新角色,您可以使用上面提供的命令。 提示将要求用户输入角色名称,然后提供确认。 继续执行这些步骤,您将成功创建 PostgreSQL 角色。

要向角色添加密码或更改之前创建的角色密码,请使用以下命令

ALTER USER <role name> PASSWORD <password>

要获取与下面的 createuser 相关的标志的更多详细信息,可以使用给定的命令

man createuser

在 PostgreSQL 中创建数据库

sudo -i -u postgres
createdb <database name>

或者

sudo -u postgres createdb <database name>

连接到 PostgreSQL 数据库

进入psql控制台,输入以下命令

connect <database name>

构建依赖关系

sudo apt install cmake
sudo apt install g++
sudo apt install libboost-graph-dev

可选依赖项

用于文档和测试

pip install sphinx
pip install sphinx-bootstrap-theme
sudo apt install texlive
sudo apt install doxygen
sudo apt install libtap-parser-sourcehandler-pgtap-perl
sudo apt install postgresql-15-pgtap

配置

pgRouting 使用 cmake 系统进行配置。

构建目录与源目录不同

创建构建目录

$ mkdir build

可配置变量

查看可以配置的变量

$ cd build
$ cmake -L ..

配置文档

文档的大部分工作都集中在 HTML 文件上。 构建文档的一些变量:

变量

默认

解释

WITH_DOC

BOOL=OFF

打开/关闭构建文档

BUILD_HTML

BOOL=ON

如果打开,则打开/关闭为用户文档构建 HTML

BUILD_DOXY

BOOL=ON

如果打开,则打开/关闭为开发人员文档构建 HTML

BUILD_LATEX

BOOL=OFF

如果打开,则打开/关闭构建 PDF

BUILD_MAN

BOOL=OFF

如果为 ON,则打开/关闭构建 MAN 页面

DOC_USE_BOOTSTRAP

BOOL=OFF

如果打开,则对用户文档的 HTML 页面使用 sphinx-bootstrap

在构建 pgRouting 之前配置 cmake 创建文档

$ cmake -DWITH_DOC=ON -DDOC_USE_BOOTSTRAP=ON ..

Note

文档的大部分工作都集中在 html 文件上。

构建

使用 make 构建代码和文档

以下说明从 path/to/pgrouting/build 开始

$ make          # build the code but not the documentation
$ make doc      # build only the user's documentation
$ make all doc  # build both the code and the user's documentation
$ make doxy     # build only the developer's documentation

我们已经在多个平台上进行了测试,安装或重新安装需要所有步骤。

Warning

SQL签名是在 cmake 命令中配置和构建的。

Windows 上的 MinGW

$ mkdir build
$ cd build
$ cmake -G"MSYS Makefiles" ..
$ make
$ make install

Linux

以下说明从 path/to/pgrouting 开始

mkdir build
cd build
cmake  ..
make
sudo make install

要在配置更改时删除构建,请使用以下代码:

rm -rf build

并开始前面提到的构建过程。

测试

目前没有 make test,测试如下

以下指令从 path/to/pgrouting/ 开始

tools/testers/doc_queries_generator.pl
createdb -U <user> ___pgr___test___
sh ./tools/testers/pg_prove_tests.sh <user>
dropdb -U <user> ___pgr___test___

另请参阅

索引和表格