尝试在Ubuntu18.04 LTS上搭建pgRouting环境,使用PostGIS3.0编辑
2019年10月20日,PostGIS的主要版本升级3.0已经发布!请查看https://postgis.net/2019/10/20/postgis-3.0.0/。
FindsJP先生发布了手册的中文翻译版本,非常感激。
感谢您的付出。
http://www.finds.jp/docs/pgisman/3.0.0/postgis-ja.html
↓域名已更改
http://aginfo.cgk.affrc.go.jp/docs/pgisman/3.0.0/index.html
因此,我立即安装了它,并将步骤记录下来作为我自己的备忘录。
添加存储库
请参考:https://wiki.postgresql.org/wiki/Apt 添加 PostgreSQL 的存储库。
$ sudo apt install curl ca-certificates
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
$ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
更新软件包列表
$ sudo apt update
安装
由于PostGIS 3.0兼容于PostgreSQL 10及PostgreSQL 9.5之后的版本,我打算尝试将其与当前最新的PostgreSQL 12结合安装。首先,我会搜索包的名称。
$ sudo apt search postgresql-12
ソート中... 完了
全文検索... 完了
postgresql-12/bionic-pgdg 12.0-2.pgdg18.04+1 amd64
object-relational SQL database, version 12 server
<略>
postgresql-12-pgrouting/bionic-pgdg 2.6.2-1.pgdg18.04+1 amd64
Routing functionality support for PostgreSQL/PostGIS
<略>
postgresql-12-postgis-3/bionic-pgdg 3.0.0+dfsg-1.pgdg18.04+1 amd64
Geographic objects support for PostgreSQL 12
<略>
从中选择安装PostgreSQL-12、PostGIS-3和pgRouting。
为了确认PostGIS的版本是否与pgRouting一起安装,我们将使用apt install命令进行确认。
$ sudo apt install postgresql-12-pgrouting
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
cpp-7 gcc-7-base gcc-8-base gdal-data libaec0 libarmadillo8 libarpack2
libblas3 libboost-serialization1.65.1 libcc1-0 libcgal13 libdap25
libdapclient6v5 libepsilon1 libfreexl1 libfyba0 libgcc1 libgdal20
libgeos-3.7.1 libgeos-c1v5 libgeotiff2 libgfortran4 libgif7 libgmpxx4ldbl
libgomp1 libhdf4-0-alt libhdf5-100 libkmlbase1 libkmldom1 libkmlengine1
liblapack3 libminizip1 libmysqlclient20 libnetcdf13 libodbc1 libogdi3.2
libopenjp2-7 libpq5 libproj12 libprotobuf-c1 libqhull7 libquadmath0
libsfcgal1 libspatialite7 libstdc++6 libsuperlu5 libsz2 liburiparser1
libxerces-c3.2 mysql-common odbcinst odbcinst1debian2 pgdg-keyring
postgresql-12 postgresql-12-pgrouting-scripts postgresql-12-postgis-3
postgresql-12-postgis-3-scripts postgresql-client-12
postgresql-client-common postgresql-common proj-bin proj-data sysstat
提案パッケージ:
gcc-7-locales geotiff-bin gdal-bin libgeotiff-epsg libhdf4-doc
libhdf4-alt-dev hdf4-tools libmyodbc odbc-postgresql tdsodbc unixodbc-bin
ogdi-bin postgresql-12-pgrouting-doc postgis postgresql-doc-12 libjson-perl
isag
以下のパッケージが新たにインストールされます:
gdal-data libaec0 libarmadillo8 libarpack2 libblas3
libboost-serialization1.65.1 libcgal13 libdap25 libdapclient6v5 libepsilon1
libfreexl1 libfyba0 libgdal20 libgeos-3.7.1 libgeos-c1v5 libgeotiff2
libgfortran4 libgif7 libgmpxx4ldbl libhdf4-0-alt libhdf5-100 libkmlbase1
libkmldom1 libkmlengine1 liblapack3 libminizip1 libmysqlclient20
libnetcdf13 libodbc1 libogdi3.2 libopenjp2-7 libpq5 libproj12
libprotobuf-c1 libqhull7 libquadmath0 libsfcgal1 libspatialite7 libsuperlu5
libsz2 liburiparser1 libxerces-c3.2 mysql-common odbcinst odbcinst1debian2
pgdg-keyring postgresql-12 postgresql-12-pgrouting
postgresql-12-pgrouting-scripts postgresql-12-postgis-3
postgresql-12-postgis-3-scripts postgresql-client-12
postgresql-client-common postgresql-common proj-bin proj-data sysstat
以下のパッケージはアップグレードされます:
cpp-7 gcc-7-base gcc-8-base libcc1-0 libgcc1 libgomp1 libstdc++6
アップグレード: 7 個、新規インストール: 57 個、削除: 0 個、保留: 560 個。
51.0 MB 中 50.4 MB のアーカイブを取得する必要があります。
この操作後に追加で 189 MB のディスク容量が消費されます。
続行しますか? [Y/n]
如果确认已安装的软件包,安装postgresql-12-pgrouting将会同时安装PostgreSQL12和PostGIS3.0。那么,我们继续安装,请输入”Y”。
続行しますか? [Y/n] y
<略>
postgresql-12 (12.0-2.pgdg18.04+1) を設定しています ...
Creating new PostgreSQL cluster 12/main ...
/usr/lib/postgresql/12/bin/initdb -D /var/lib/postgresql/12/main --auth-local peer --auth-host md5
データベースシステム内のファイルの所有者はユーザ"postgres"となります。
このユーザをサーバプロセスの所有者とする必要があります。
データベースクラスタはロケール"ja_JP.UTF-8"で初期化されます。
デフォルトのデータベース符号化方式はそれに対応してUTF8に設定されました。
initdb: could not find suitable text search configuration for locale "ja_JP.UTF-8"
デフォルトのテキスト検索構成は simple に設定されます。
データベージのチェックサムは無効です。
ディレクトリ/var/lib/postgresql/12/mainの権限を設定しています ... ok
サブディレクトリを作成しています ... ok
動的共有メモリの実装を選択しています ... posix
デフォルトのmax_connectionsを選択しています ... 100
デフォルトの shared_buffers を選択しています ... 128MB
selecting default time zone ... Asia/Tokyo
設定ファイルを作成しています ... ok
ブートストラップスクリプトを実行しています ... ok
ブートストラップ後の初期化を実行しています ... ok
データをディスクに同期しています ... ok
成功しました。以下のようにしてデータベースサーバを起動することができます:
pg_ctlcluster 12 main start
<略>
由于成功安装完成,我将启动它进行测试。
$ sudo pg_ctlcluster 12 main start
似乎已经成功地启动了,没有遇到任何错误。
最初的设置
由于已经创建了postgres用户,因此切换到该用户进行工作。
$ sudo su - postgres
使用psql命令连接并设置postgres账户(PostgreSQL登录角色)的密码,并创建测试数据库。
$ psql
postgres=# ALTER USER postgres PASSWORD 'new_password';
ALTER ROLE
postgres=# create database testdb;
CREATE DATABASE
postgres=# \q
这次我们将使用postgres帐户连接到测试数据库,并启用PostGIS和pgRouting。
$ psql -d testdb -U postgres
testdb=# CREATE EXTENSION postgis;
CREATE EXTENSION
testdb=# CREATE EXTENSION pgrouting;
CREATE EXTENSION
接下来我们来确认一下版本。
testdb=# SELECT postgis_version();
postgis_version
---------------------------------------
3.0 USE_GEOS=1 USE_PROJ=1 USE_STATS=1
(1 行)
testdb=# SELECT * FROM pgr_version();
version | tag | hash | branch | boost
---------+--------+-----------+--------+--------
2.6.2 | v2.6.2 | b14f4d56b | master | 1.65.1
(1 行)
我已确认PostGIS 3.0和pgRouting 2.6.2已安装。
这就是以上的内容。