尝试在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已安装。

这就是以上的内容。

广告
将在 10 秒后关闭
bannerAds