nominatim en centos 7

Bueno gente acá va un mini howto de como instalar nominatim en centos.

Primero lo primero… “algunos” paquetes de yum:

yum install epee-release
yum install postgresql-server postgresql-contrib postgresql-devel postgis postgis-utils
yum install git make automake gcc gcc-c++ libtool policycoreutils-python
yum install php-pgsql php php-pear php-pear-DB libpqxx-devel proj-epsg
yum install bzip2-devel bzip2 proj-devel geos-devel libxml2-devel protobuf-c-devel lua-devel boost-devel

Editamos la configuración de postgres (/var/lib/pgsql/9.4/data/postgresql.conf)
En este caso es un servidor de 16GB de ram, así que los parámetros deberían ser:

shared_buffers = 2GB
maintenance_work_mem = 5GB
work_mem = 50MB
effective_cache_size (12GB)
synchronous_commit = off
checkpoint_segments = 100
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9
fsync = off # solo para el primer import
full_page_writes = off # solo para el primer import

Ahora iniciamos la DB:

postgresql-setup initdb
systemctl enable postgresql
systemctl start postgresql

Descargamos…

cd /srv
wget http://www.nominatim.org/release/Nominatim-2.4.0.tar.bz2
tar xvf Nominatim-2.4.0.tar.bz2
mv Nominatim-2.4.0 Nominatim

Compilamos…

cd Nominatim
./configure
make

Agregamos a SELinux para no tener problemasL

semanage fcontext -a -t httpd_sys_content_t "/srv/Nominatim/(website|lib|settings)(/.*)?"
semanage fcontext -a -t lib_t "/srv/Nominatim/module/nominatim.so"
restorecon -R -v /srv/Nominatim

Agregamos las cuentas de usuario:

sudo -u postgres createuser -s nominatim
sudo -u postgres createuser apache

Nos bajamos el OSM, en este caso es Colombia y lo importamos:

wget "http://download.geofabrik.de/south-america/colombia-latest.osm.bz2"
bunzip2 colombia-latest.osm.bz2
su postgres
./utils/setup.php --osm-file /mnt/sdc/colombia-latest.osm --all

Ahora a tomar un café, o una buena heineken los que puedan 🙂