安装¶
目录
有关下载和安装适用于不同操作系统的二进制文件的说明、本文档中未包含的其他注释和更正,可以在 安装维基 中找到
使用pgRouting需要安装PostGIS,请阅读本 安装指南 中有关安装的信息
简洁版本¶
解压 tar 压缩文件
tar xvfz pgrouting-3.7.0.tar.gz
cd pgrouting-3.7.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-3.7.0.tar.gz https://github.com/pgRouting/pgrouting/archive/v3.7.0.tar.gz
转到 简洁版本 以获取有关提取 tar 包和编译 pgRouting 的更多说明。
git
下载存储库
git clone git://github.com/pgRouting/pgrouting.git
cd pgrouting
git checkout v3.7.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();
升级数据库
要将数据库中的 pgRouting 升级到版本3.7.0,请使用以下命令:
ALTER EXTENSION pgrouting UPDATE TO "3.7.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___
另请参阅¶
索引和表格