Table of Contents
Instructions for downloading and installing binaries for different Operative systems instructions and additional notes and corrections not included in this documentation can be found in Installation wiki
To use pgRouting postGIS needs to be installed, please read the information about installation in this Install Guide
Extracting the tar ball
tar xvfz pgrouting-2.4.0.tar.gz
cd pgrouting-2.4.0
To compile assuming you have all the dependencies in your search path:
mkdir build
cd build
cmake ..
make
sudo make install
Once pgRouting is installed, it needs to be enabled in each individual database you want to use it in.
createdb routing
psql routing -c 'CREATE EXTENSION postGIS'
psql routing -c 'CREATE EXTENSION pgRouting'
The pgRouting latest release can be found in https://github.com/pgRouting/pgrouting/releases/latest
wget
To download this release:
wget -O pgrouting-v2.4.0.tar.gz https://github.com/pgRouting/pgrouting/archive/v2.4.0.tar.gz
Goto Short Version to the extract and compile instructions.
git
To download the repository
git clone git://github.com/pgRouting/pgrouting.git
cd pgrouting
git checkout |release|
Goto Short Version to the compile instructions (there is no tar ball).
Enabling the database
pgRouting is an extension and depends on postGIS. Enabling postGIS before enabling pgRouting in the database
CREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;
Upgrading the database
To upgrade pgRouting in the database to version 2.4.0 use the following command:
ALTER EXTENSION pgrouting UPDATE TO "2.4.0";
More information can be found in https://www.postgresql.org/docs/current/static/sql-createextension.html
Compilation Dependencies
To be able to compile pgRouting, make sure that the following dependencies are met:
optional dependencies
For user’s documentation
For developer’s documentation
For testing
Example: Installing dependencies on linux
Installing the compilation dependencies
sudo apt-get install
cmake \
g++ \
postgresql-9.3 \
postgresql-server-dev-9.3 \
libboost-graph-dev \
libcgal-dev
Installing the optional dependencies
sudo apt-get install -y python-sphinx \
texlive \
doxygen \
libtap-parser-sourcehandler-pgtap-perl \
postgresql-9.3-pgtap
pgRouting uses the cmake system to do the configuration.
The build directory is different from the source directory
Create the build directory
$ mkdir build
To see the variables that can be configured
$ cd build
$ cmake -L ..
Configuring The Documentation
Most of the effort of the documentation has being on the HTML files. Some variables for the documentation:
Variable | Default | Comment |
---|---|---|
WITH_DOC | BOOL=OFF | Turn on/off building the documentation |
BUILD_HTML | BOOL=ON | If ON, turn on/off building HTML for user’s documentation |
BUILD_DOXY | BOOL=ON | If ON, turn on/off building HTML for developer’s documentation |
BUILD_LATEX | BOOL=OFF | If ON, turn on/off building PDF |
BUILD_MAN | BOOL=OFF | If ON, turn on/off building MAN pages |
DOC_USE_BOOTSTRAP | BOOL=OFF | If ON, use sphinx-bootstrap for HTML pages of the users documentation |
Configuring with documentation
$ cmake -DWITH_DOC=ON ..
Note
Most of the effort of the documentation has being on the html files.
Using make
to build the code and the documentation
The following instructions start from path/to/pgrouting/build
$ make # build the code but not the documentation
$ make doc # build only the documentation
$ make all doc # build both the code and the documentation
We have tested on several platforms, For installing or reinstalling all the steps are needed.
Warning
The sql signatures are configured and build in the cmake
command.
MinGW on Windows
$ mkdir build
$ cd build
$ cmake -G"MSYS Makefiles" ..
$ make
$ make install
Linux
The following instructions start from path/to/pgrouting
mkdir build
cd build
cmake ..
make
sudo make install
When the configuration changes:
rm -rf build
and start the build process as mentioned above.
Currently there is no make test
and testing is done as follows
The following instructions start from path/to/pgrouting/
tools/testers/algorithm-tester.pl
createdb -U <user> ___pgr___test___
sh ./tools/testers/pg_prove_tests.sh <user>
dropdb -U <user> ___pgr___test___