LoginSignup
1
0

More than 5 years have passed since last update.

Ubuntu18.04 LTSにpgRouting環境を構築してみる

Last updated at Posted at 2018-12-13

pgRouting環境の構築方法は色々と既存記事があると思いますが、Ubuntu18.04での記事が見つからなかったので覚書として残しておく。

リポジトリの追加

参考:https://wiki.postgresql.org/wiki/Apt
標準のDEBでもPostgreSQLはインストールできるんですがpgRoutingを入れるならリポジトリを追加しておきましょう。

$ 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

インストール

PostgreSQL10とPostGIS、pgRouting、管理用にpgAdmin4をインストールします。
pgRoutingを入れるとPostGISは付いてくるので指定していません。

$ sudo apt install postgresql-10 postgresql-10-pgrouting pgadmin4

ちなみにpgAdmin4はメモリをやたらと使いますのでサーバ上で動かす場合はメインメモリを2GB程度は割り当てておかないとまともに動かせませんでした。ご注意を。

初期設定

postgresユーザーができているのでそちらに切り替えて作業をする。
CentOSだとrootからpostgresユーザーにsuしてたのでpostgresユーザーにパスワードを指定せず(通常ログイン不可状態として)使っていたけどUbuntuではどうするのが一般的なんでしょうか。
ここではpostgresユーザーにパスワードを設定してsuします。

$ sudo passwd postgres
新しい UNIX パスワードを入力してください: 
新しい UNIX パスワードを再入力してください: 
passwd: パスワードは正しく更新されました
$ 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=# \q

できました。

確認

pgAdmin4を使ってローカルDBに接続して空間関数やpgr関数が設定されているかを確認します。

pgAdmin4を起動したら左のツリーのServersを右クリックして[Create]-[Server]を選ぶ。
image.png

GeneralタブのNameに適当に名前を入れたら、ConnectionタブのHostname/addressに[localhost]、UsernameとPasswordに先ほど設定したpostgresアカウントを設定してSaveボタンをクリック。
image.png

するとツリーにサーバが追加されるのでどんどん開いていきましょう。
Functionsまで開いて横に(1384)みたいな数字が出ればOKです。
ずらずっと下げていくとST_ほにゃららとかpgr_ほにゃららが出てくると思います。
image.png

感想

手軽にインストール出来ました。
pgRoutingのDockerfileを公開している方もいるのでそういうのを使ってみるのもいいかもしれない。
データの投入や使い方は以下の記事を参考にするといいと思う。
https://qiita.com/sanak/items/f50e8c5bb97bf9619958

困りごと

pgAdmin4からツールの実行をしようとすると以下のエラーがでるんで解決したい。
pythonではなくpython3にPATHが通るようにするか、pythonでも動くようにするかだと思ってる。
できればvirtualenvは使いたくない。
image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0