From f71e9dd187f697e31dddacb1cdaea0d6d29009e9 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Tue, 7 Jun 2016 22:47:57 +0200 Subject: [PATCH] move installation instructions from wiki page here --- README => README.md | 26 ++++---- docs/CMakeLists.txt | 1 + docs/Import_and_update.md | 112 ++++++++++++++++++++++++++++++--- vagrant/install-on-centos-7.sh | 6 +- 4 files changed, 123 insertions(+), 22 deletions(-) rename README => README.md (64%) diff --git a/README b/README.md similarity index 64% rename from README rename to README.md index 7a760ff6..c5a01a36 100644 --- a/README +++ b/README.md @@ -12,22 +12,15 @@ Documentation ============= More information about Nominatim, including usage and installation instructions, -can be found in the OSM wiki at: +can be found in the docs/ subdirectory and in the OSM wiki at: http://wiki.openstreetmap.org/wiki/Nominatim Installation ============ -The following instructions is a quick guide to installation. A more detailed guide -how to set up your own instance of Nominatim can be found in the wiki: - -http://wiki.openstreetmap.org/wiki/Nominatim/Installation - -Note that this repository contains a submodule called osm2pgsql. Make sure it -is cloned as well by running `git submodule update --init`. - -Installation steps: +There are detailed installation instructions in the /docs directory. +Here is a quick summary of the necessary steps. 1. Compile Nominatim: @@ -36,11 +29,20 @@ Installation steps: cmake .. make + For more detailed installation instructions see [docs/installation.md](). + There are also step-by-step instructions for + [Ubuntu 16.04](docs/install-on-ubuntu-16.md) and + [CentOS 7.2](docs/install-on-centos-7.md). + 2. Get OSM data and import: - ./utils/setup.php --osm-file --all + ./build/utils/setup.php --osm-file --all + + Details can be found in [docs/Import_and_update.md]() + +3. Point your webserver to the ./build/website directory. + -3. Point your webserver to the ./website directory. License ======= diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index fd7b808f..f83f10d7 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -18,6 +18,7 @@ ADD_CUSTOM_TARGET( md_install_${df} ALL endforeach() set (GENERALDOCFILES + Installation.md Import_and_update.md ) diff --git a/docs/Import_and_update.md b/docs/Import_and_update.md index c2dcf937..80e8bf47 100644 --- a/docs/Import_and_update.md +++ b/docs/Import_and_update.md @@ -4,7 +4,7 @@ Importing a new database The following instructions explain how to create a Nominatim database from an OSM planet file and how to keep the database up to date. It is assumed that you have already sucessfully installed the Nominatim -software itself, if not return to the [prerequisites page](Prerequisites.md). +software itself, if not return to the [installation page](Installation.md). Configuration setup in settings/local.php ----------------------------------------- @@ -57,12 +57,8 @@ Download the data to import and load the data with the following command: The --osm2pgsql-cache parameter is optional but strongly recommended for planet imports. It sets the node cache size for the osm2pgsql import part (see -C parameter in osm2pgsql help). 28GB are recommended for a full planet -imports, for excerpts you can use less. -Adapt to your available RAM to avoid swapping. - -The import will take as little as an hour for a small country extract -and as much as 10 days for a full-scale planet import on less powerful -hardware. +imports, for excerpts you can use less. Adapt to your available RAM to +avoid swapping, never give more than 2/3 of RAM to osm2pgsql. Loading Additional Datasets @@ -75,3 +71,105 @@ The following commands will create additional entries for countries and POI sear ./utils/specialphrases.php --wiki-import > data/specialphrases.sql psql -d nominatim -f data/specialphrases.sql + +Installing Tiger housenumber data for the US +============================================ + +Nominatim is able to use the official TIGER address set to complement the +OSM housenumber data in the US. You can add TIGER data to your own Nominatim +instance by following these steps: + + 1. Install the GDAL library and python bindings + + Ubuntu: apt-get install python-gdal + CentOS: yum install gdal-python + + 2. Get the TIGER 2015 data. You will need the EDGES files + (3,234 zip files, 11GB total). + + wget -r ftp://mirror1.shellbot.com/census/geo/tiger/TIGER2015/EDGES/ + (1gb/s preferred mirror) MIRROR HOSTED BY SHELLBOT, LTD. + + OR: + + wget -r ftp://ftp2.census.gov/geo/tiger/TIGER2015/EDGES/ + (500kb/s original source) HOSTED BY THE US CENSUS BUREAU + + 3. Convert the data into SQL statements (stored in data/tiger): + + ./utils/imports.php --parse-tiger + + 4. Import the data into your Nominatim database: + + ./utils/setup.php --import-tiger-data + +Be warned that the import can take a very long time, especially if you +import all of the US. + + +Updates +======= + +There are many different possibilities to update your Nominatim database. +The following section describes how to keep it up-to-date with osmosis. +For a list of other methods see the output of ./utils/update.php --help. + +Installing the newest version of osmosis +---------------------------------------- + +The version of osmosis that comes with your distribution should be sufficient +in most cases. + +If you want to install it by hand, get the latest version from the +[Osmosis website](http://wiki.openstreetmap.org/wiki/Osmosis). Then +tell Nominatim to use this version by adding the following line to +your `settings/local.php`: + + @define('CONST_Osmosis_Binary', '/usr/local/bin/osmosis'); + +Setting up the update process +----------------------------- + +Next the update needs to be initialised. By default Nominatim is configured +to update using the global minutely diffs. + +If you want a different update source you will need to add some settings +to `settings/local.php`. For example, to use the daily country extracts +diffs for Ireland from geofabrik add the following: + + // base URL of the replication service + @define('CONST_Replication_Url', 'http://download.geofabrik.de/europe/ireland-and-northern-ireland-updates'); + // Process each update separately, osmosis cannot merge multiple updates + @define('CONST_Replication_MaxInterval', '40000'); + // How often upstream publishes diffs + @define('CONST_Replication_Update_Interval', '86400'); + // How long to sleep if no update found yet + @define('CONST_Replication_Recheck_Interval', '900'); + + +Delete existing 'settings/configuration.txt' then run the following command +to create the osmosis configuration files: + + ./utils/setup.php --osmosis-init + +Enabling hierarchical updates +----------------------------- + +When a place is updated in the database, all places that contain this place +in their address need to be updated as well. These hierarchical updates are +disabled by default because they slow down the initial import. +Enable them with the following command: + + ./utils/setup.php --create-functions --enable-diff-updates + +Updating Nominatim +------------------ + +The following command will keep your database constantly up to date: + + ./utils/update.php --import-osmosis-all --no-npi + +If you have imported multiple country extracts and want to keep them +up-to-date, have a look at the script in +(issue #60)[https://github.com/twain47/Nominatim/issues/60]. + diff --git a/vagrant/install-on-centos-7.sh b/vagrant/install-on-centos-7.sh index 4f8f917e..afdeccd9 100755 --- a/vagrant/install-on-centos-7.sh +++ b/vagrant/install-on-centos-7.sh @@ -1,7 +1,7 @@ #!/bin/bash # # *Note:* these installation instructions are also available in executable -# form for use with vagrant in the vagrant/ directory. +# form for use with vagrant under vagrant/install-on-centos-7.sh. # # Installing the Required Software # ================================ @@ -67,8 +67,8 @@ # # Next tune the postgresql configuration, which is located in -# `/var/lib/pgsql/data/postgresql.conf`. See -# [the wiki](http://wiki.openstreetmap.org/wiki/Nominatim/Installation#PostgreSQL_Tuning_and_Configuration) for the parameters to change. +# `/var/lib/pgsql/data/postgresql.conf`. See section *Postgres Tuning* in +# [the installation page](Installation.md) for the parameters to change. # # Now start the postgresql service after updating this config file. -- 2.39.5