ひだまりソケットは壊れない

ソフトウェア開発に関する話を書きます。 最近は主に Android アプリ、Windows アプリ (UWP アプリ)、Java 関係です。

まじめなことを書くつもりでやっています。 適当なことは 「一角獣は夜に啼く」 に書いています。

renderd から Mapnik を使うときに 「no datasource plugin directories have been successfully registered」 って言われる問題

背景

renderd (mod_tile から使われるマルチスレッドのプロセス) から Mapnik を使って地図タイルをレンダリングしようとしている。

Linux ディストリビューションとして Ubuntu 18.04 を使用して、renderd は APT リポジトリ ppa:osmadmins/ppa の renderd パッケージを使用。 Mapnik もこのパッケージの依存パッケージ (libmapnik3.0) としてインストールされる。

上記パッケージで renderd をインストールした場合に自動的に生成される設定ファイルは /etc/renderd.conf に置かれ、その内容は下記のようになっている。

[renderd]
stats_file=/var/run/renderd/renderd.stats
socketname=/var/run/renderd/renderd.sock
num_threads=4
tile_dir=/var/lib/mod_tile

[mapnik]
plugins_dir=/usr/lib/mapnik/2.0/input
font_dir=/usr/share/fonts/truetype/ttf-dejavu
font_dir_recurse=false

[default]
URI=/osm/
XML=/etc/mapnik-osm-data/osm.xml
DESCRIPTION=This is the standard osm mapnik style
;ATTRIBUTION=&copy;<a href=\"http://www.openstreetmap.org/\">OpenStreetMap</a> and <a href=\"http://wiki.openstreetmap.org/w\
iki/Contributors\">contributors</a>, <a href=\"http://creativecommons.org/licenses/by-sa/2.0/\">CC-BY-SA</a>
;HOST=tile.openstreetmap.org
;SERVER_ALIAS=http://a.tile.openstreetmap.org
;SERVER_ALIAS=http://b.tile.openstreetmap.org
;HTCPHOST=proxy.openstreetmap.org

遭遇した問題 : エラーが発生する

renderd のプロセスを起動した後、下記のようなエラーが発生していた。

An error occurred while loading the map layer 'ajt': Could not create datasource for type: 'shape' (no datasource plugin directories have been successfully registered) encountered during parsing of layer 'ocean-lz' in Layer at line 269 of '/home/renderaccount/src/openstreetmap-carto/mapnik.xml'

とか

An error occurred while loading the map layer 'ajt': Could not create datasource for type: 'postgis' (no datasource plugin directories have been successfully registered) encountered during parsing of layer 'landcover-low-zoom' in Layer at line 755 of '/home/renderaccount/src/openstreetmap-carto/mapnik.xml'

調べたこと

解決

設定ファイルのプラグインディレクトリ名が違っていたので 「no datasource plugin directories have been successfully registered」 って言われていたのだった。 ディレクトリ名を修正したら解決した。