From e8d091fdfbf04bae772d80a11f5b1cfc22b7cb86 Mon Sep 17 00:00:00 2001 From: Ircama Date: Sun, 21 Feb 2021 15:43:45 +0100 Subject: [PATCH] Version 5.0.0 Updated installation of Kosmtik Updated with the latest openstreetmap-carto version --- README.md | 2 +- pages/20_kosmtik-ubuntu-setup.md | 37 ++++++-- pages/_includes/grant.md | 2 +- pages/_includes/inst-osm-carto.md | 46 +++++----- pages/_includes/install-nodejs.md | 34 ++++---- pages/_includes/postgis-inst.md | 121 +++++++++++++++++---------- pages/_includes/scripts-osm-carto.md | 54 +++++------- pages/_includes/update-ubuntu.md | 4 +- 8 files changed, 179 insertions(+), 121 deletions(-) diff --git a/README.md b/README.md index 9db4670..86d0a9a 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ This chapter summarizes all the steps to locally deploy and test this [jekill](h gem install jekyll bundler ``` -- Update the bundler version in Gemfile.lock. (Gemfile.lock is removed, so that Bundler will fetch all remote sources, resolve dependencies and install all needed gems.) +- Update the bundler version in Gemfile.lock. (Gemfile.lock is removed, so that Bundler will fetch all remote sources, resolve dependencies and install all needed gems. In general, this also fixes Dependabot security updates on vulnerabilities.) ```shell cd ~/Documents/GitHub/osm-carto-tutorials diff --git a/pages/20_kosmtik-ubuntu-setup.md b/pages/20_kosmtik-ubuntu-setup.md index d5e2b75..5fe425a 100644 --- a/pages/20_kosmtik-ubuntu-setup.md +++ b/pages/20_kosmtik-ubuntu-setup.md @@ -32,6 +32,16 @@ The following subfolders will be created: ## Install Kosmtik +```shell +sudo npm install -g kosmtik +``` + +Go to [next installation steps](#end-of-kosmtik-installation). + +### Install Kosmtik from its GitHub repository + +As alternative installation method, install Kosmtik from its GitHub repository: + ```shell mkdir -p ~/src ; cd ~/src git clone https://github.com/kosmtik/kosmtik.git @@ -49,7 +59,7 @@ In case the installation fails, this is possibly due to some incompatibility wit Read [Kosmtik Install or Update](https://github.com/kosmtik/kosmtik#install-or-update) for further information. -## Test Kosmtik +### Test Kosmtik ```shell cd ~/src/kosmtik @@ -60,6 +70,10 @@ See [Start Kosmtik](#start-kosmtik). {% include_relative _includes/test-app.md cdprogram='~/src' %} +### End of Kosmtik installation + +Continue with next steps. + {% include_relative _includes/inst-osm-carto.md cdprogram='~/src' %} {% include_relative _includes/configuration-variables.md os='Ubuntu' %} @@ -68,7 +82,8 @@ See [Start Kosmtik](#start-kosmtik). Using your favourite editor, create a file named *localconfig.json* in the *openstreetmap-carto* directory, including the following: -``` +```json +cat > localconfig.json <<\eof [ { "where": "center", @@ -87,19 +102,20 @@ Using your favourite editor, create a file named *localconfig.json* in the *open } } ] +eof ``` Notice the datasource parameters, including user and password, that you might need to change. Replace coordinates and zoom with your preferred ones within the following line: -``` +```json "then": [9.111, 45.111, 15] ``` For instance, for Liechtenstein you would use: -``` +```json "then": [9.5634, 47.1237, 15] ``` @@ -115,8 +131,18 @@ Openstreetmap-carto suggests [installing some Kosmtik plugins](https://github.co Case of local installation: +## Install Kosmtik plugins + ```shell -cd ~/src/kosmtik && ./index.js plugins --install kosmtik-overpass-layer --install kosmtik-fetch-remote --install kosmtik-overlay --install kosmtik-open-in-josm --install kosmtik-map-compare --install kosmtik-osm-data-overlay --install kosmtik-mapnik-reference --install kosmtik-geojson-overlay +cd ~/src/kosmtik +./index.js plugins --install kosmtik-overpass-layer +./index.js plugins --install kosmtik-fetch-remote +./index.js plugins --install kosmtik-overlay +./index.js plugins --install kosmtik-open-in-josm +./index.js plugins --install kosmtik-map-compare +./index.js plugins --install kosmtik-osm-data-overlay +./index.js plugins --install kosmtik-mapnik-reference +./index.js plugins --install kosmtik-geojson-overlay cd ~/src ``` @@ -166,3 +192,4 @@ To cosmetically remove these warinings, install the [Old unifont Medium font](#o Accessing the database and rendering images is often a slow process (mainly depending on the amount of data to be managed, but also on the server performance and on the network), so give many seconds to Kosmtik to output or refresh the map. {% include_relative _includes/edit-the-stylesheets.md editor='*vi*' program='Kosmtik' %} + diff --git a/pages/_includes/grant.md b/pages/_includes/grant.md index 6dac016..b86d8b4 100644 --- a/pages/_includes/grant.md +++ b/pages/_includes/grant.md @@ -1,7 +1,7 @@ Create PostgreSQL user "*{{ pg_login }}*" (if not yet existing) and grant rights to all *gis* db tables for "*{{ pg_login }}*" user and for all logged users: ```shell - wget https://raw.githubusercontent.com/openstreetmap/osm2pgsql/master/install-postgis-osm-user.sh + wget https://raw.githubusercontent.com/openstreetmap/osm2pgsql/1.2.2/install-postgis-osm-user.sh chmod a+x ./install-postgis-osm-user.sh sudo ./install-postgis-osm-user.sh gis {{ pg_login }} ``` diff --git a/pages/_includes/inst-osm-carto.md b/pages/_includes/inst-osm-carto.md index f867fce..febd735 100644 --- a/pages/_includes/inst-osm-carto.md +++ b/pages/_includes/inst-osm-carto.md @@ -2,10 +2,13 @@ Check that [Python](https://www.python.org/) is installed: - python -V - python3 -V +```shell +sudo apt-get install -y python3 python3-distutils -Otherwise Python needs to be installed. +# Verify Python installation: +python -V +python3 -V +``` ## Install Yaml and Package Manager for Python @@ -15,20 +18,25 @@ This is necessary in order to run OpenStreetMap-Carto scripts/indexes. sudo apt-get install -y python-yaml pip -V # to verify whether pip is already installed -sudo apt-get install -y python-pip +sudo apt-get install -y python3-pip +python3 -m pip install --upgrade pip ``` ## Install Mapnik Utilities The *Mapnik Utilities* package includes shapeindex. - sudo apt-get install -y mapnik-utils +```shell +sudo apt-get install -y mapnik-utils +``` ## Install *openstreetmap-carto* - cd {{ include.cdprogram }} - git clone https://github.com/gravitystorm/openstreetmap-carto.git - cd openstreetmap-carto +```shell +cd {{ include.cdprogram }} +git clone https://github.com/gravitystorm/openstreetmap-carto.git +cd openstreetmap-carto +``` Read [installation notes](https://github.com/gravitystorm/openstreetmap-carto/blob/master/INSTALL.md) for further information. @@ -38,7 +46,9 @@ Currently Noto fonts are used. To install them (except Noto Emoji Regular and Noto Sans Arabic UI Regular/Bold): - sudo apt-get install -y fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted fonts-hanazono ttf-unifont +```shell +sudo apt-get install -y fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted fonts-hanazono ttf-unifont +``` Installation of Noto fonts (hinted ones should be used if available[^71]): @@ -71,7 +81,9 @@ fc-list | grep Emoji DejaVu Sans is used as an optional fallback font for systems without Noto Sans. If all the Noto fonts are installed, it should never be used. - sudo apt-get install -y fonts-dejavu-core +```shell +sudo apt-get install -y fonts-dejavu-core +``` Read [font notes](https://github.com/gravitystorm/openstreetmap-carto/blob/master/INSTALL.md#fonts) for further information. @@ -96,17 +108,5 @@ fc-list | grep -i unifont # both uppercase and lowercase fonts will be listed Notice that above installation operation is useless, just removes the warning. -## Create the *data* folder - -```shell -cd {{ include.cdprogram }} -cd openstreetmap-carto -scripts/get-shapefiles.py -``` - -The actual shapefiles loaded by the OpenStreetMap tile servers are reported in the related [Chef configuration](https://github.com/openstreetmap/chef/blob/master/roles/tile.rb#L65-L89). - -Read [scripted download](https://github.com/gravitystorm/openstreetmap-carto/blob/master/INSTALL.md#scripted-download) for further information. - [^71]: [pnorman comment on hinted fonts](https://github.com/gravitystorm/openstreetmap-carto/issues/2402#issuecomment-252496456) -[^72]: [Is lowercase "unifont" needed?](https://github.com/gravitystorm/openstreetmap-carto/issues/2924) \ No newline at end of file +[^72]: [Is lowercase "unifont" needed?](https://github.com/gravitystorm/openstreetmap-carto/issues/2924) diff --git a/pages/_includes/install-nodejs.md b/pages/_includes/install-nodejs.md index c06d3be..5a93077 100644 --- a/pages/_includes/install-nodejs.md +++ b/pages/_includes/install-nodejs.md @@ -1,8 +1,22 @@ ## Install Node.js -[Node.js](https://nodejs.org/en/) can be installed via different methods, including: +Install [Node.js](https://nodejs.org/en/) with Ubuntu 20.04 LTS: -- [NodeSource Node.js Binary Distributions](https://github.com/nodesource/distributions) +```shell +# Check installations: +node -v +nodejs -v +npm -v + +# If components needs to be installed, run the following: +sudo apt install -y nodejs npm +``` + +Go to [Check Node.js versions](#check-nodejs-versions). + +Additional notes on Node.js: other modes to install it: + +- [NodeSource Node.js Binary Distributions](https://github.com/nodesource/distributions). Check related [installation instructions](https://github.com/nodesource/distributions#installation-instructions). - Standard mode with Ubuntu's Advanced Packaging Tool (APT) - Version management tools, like: - [n](https://github.com/tj/n) (Interactively Manage Your Node.js Versions) @@ -10,17 +24,6 @@ A [list of useful commands](../nodejs-commands){:target="_blank"} to manage *Node.js* is available at a specific page. -### Installation procedure suggested by openstreetmap-carto - -For running Kosmtik, Openstreetmap-carto currently suggests [installing Node.js v6.x](https://github.com/gravitystorm/openstreetmap-carto/blob/master/Dockerfile#L11-L12) from NodeSource Node.js Binary Distributions, basing on related [installation instructions](https://github.com/nodesource/distributions#installation-instructions): - -```shell -curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - && sudo apt-get install -y nodejs -node -v -nodejs -v -npm -v -``` - The above reported Node.js version also supports installing TileMill and Carto. ### Distro version from the APT package manager @@ -77,9 +80,12 @@ sudo n lts ``` {% endif %} -To get the installed version number: +### Check Node.js versions + +To get the installed version numbers: ```shell node -v npm -v ``` + diff --git a/pages/_includes/postgis-inst.md b/pages/_includes/postgis-inst.md index 838b829..f872e48 100644 --- a/pages/_includes/postgis-inst.md +++ b/pages/_includes/postgis-inst.md @@ -10,7 +10,7 @@ On Ubuntu there are pre-packaged versions of both postgis and postgresql, so the ```shell sudo apt-get update -sudo apt-get install -y postgresql-10 +sudo apt-get install -y postgresql postgis ``` With [WSL](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux), you need to start the db: @@ -19,38 +19,6 @@ With [WSL](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux), you need Note: used PostgreSQL port is 5432 (default). -A user named {{ pg_user }} will be created during the installation process. - -### Set the password for the *{{ pg_user }}* user - -```shell -psql -U {{ pg_user }} -\password {{ pg_user }} -``` - -Alternative procedure (useful if you get authentication issues with the previous one): - -```shell -sudo su - -sudo -i -u {{ pg_user}} -psql -U {{ pg_user}} -\password {{ pg_user }} -``` - -Enter the following password twice: `{{ pg_password }}` - -This is just an example of password, you can use the one you prefer. - -After entering the password, exit from *psql* with: - - \q - -With the second procedure, also isssue: - -```shell -exit # from 'sudo -i -u {{ pg_user}}' -exit # from 'sudo su -' -``` ### Create the PostGIS instance @@ -59,11 +27,18 @@ Now you need to create a PostGIS database. The defaults of various programs incl The character encoding scheme to be used in the database is *UTF8* and the adopted collation is *en_GB.utf8*. (The `U&"..."` escaped Unicode syntax used in *project.mml* should work [only when the server encoding is UTF8](https://www.postgresql.org/docs/9.5/static/sql-syntax-lexical.html). This is also in line with what reported in the [PostgreSQL Chef configuration code](https://github.com/openstreetmap/chef/blob/master/cookbooks/postgresql/resources/database.rb#L25-L27).) ```shell -export PGPASSWORD={{ pg_password }} +sudo -u postgres createuser -s $USER HOSTNAME=localhost # set it to the actual ip address or host name -psql -U {{ pg_user }} -h $HOSTNAME -c "CREATE DATABASE gis ENCODING 'UTF-8' LC_COLLATE 'en_GB.utf8' LC_CTYPE 'en_GB.utf8'" +createdb gis --encoding="UTF8" --lc-collate="en_GB.UTF-8" --lc-ctype="en_GB.UTF-8" --template=template0 +psql -d gis -c 'CREATE EXTENSION postgis; CREATE EXTENSION hstore;' +``` + +Go to [the next step](#add-a-user-and-grant-access-to-gis-db). -# alternative command: createdb -E UTF8 -l en_GB.UTF8 -O {{ pg_user }} gis +If in different host: + +```shell +createdb gis --host="$HOSTNAME" --encoding="UTF8" --lc-collate="en_GB.UTF-8" --lc-ctype="en_GB.UTF-8" --template=template0 ``` If you get the following error: @@ -72,11 +47,15 @@ If you get the following error: then you need to add *'en_GB.utf8'* locale using the following command: - sudo dpkg-reconfigure locales +```shell +sudo dpkg-reconfigure locales +``` And select "en_GB.UTF-8 UTF-8" in the first screen ("Locales to be generated"). Subsequently, restarting the db would be suggested: - sudo service postgresql restart +```shell +sudo service postgresql restart +``` If you get the following error: @@ -137,7 +116,7 @@ Install it and repeat the create extension commands. Notice that PostgreSQL 9.3 In order for the application to access the *gis* database, a DB user with the same name of your UNIX user is needed. Let's suppose your UNIX ue is *{{ pg_login }}*. ```shell -psql -U {{ pg_user }} -c "create user {{ pg_login }};grant all privileges on database gis to {{ pg_login }};" +psql -d gis -c "create user tileserver;grant all privileges on database gis to tileserver;" ``` ### Enabling remote access to PostgreSQL @@ -264,14 +243,12 @@ The configuration adopted for PostgreSQL is [postgresql/attributes/default.rb](h [Osm2pgsql](https://wiki.openstreetmap.org/wiki/Osm2pgsql) is an OpenStreetMap specific software used to load the OSM data into the PostGIS database. -The [default packaged versions](https://launchpad.net/ubuntu/+source/osm2pgsql) of Osm2pgsql are 0.88.1-1 on Ubuntu 16.04 LTS and 0.96.0 on Ubuntu 18.04 LTS. Nevertheless, more recent versions are suggested, available at the [OpenStreetMap Osmadmins PPA](https://launchpad.net/~osmadmins/+archive/ubuntu/ppa) or compiling the software from sources. +The [default packaged versions](https://launchpad.net/ubuntu/+source/osm2pgsql) of Osm2pgsql are 0.88.1-1 on Ubuntu 16.04 LTS and 0.96.0 on Ubuntu 18.04 LTS. Nevertheless, more recent versions are suggested, available at the [OpenStreetMap Osmadmins PPA](https://launchpad.net/~osmadmins/+archive/ubuntu/ppa) or [compiling the software from sources](https://github.com/openstreetmap/osm2pgsql). -To install osm2pgsql from package (will not install an updated version): +To install osm2pgsql: ```shell -sudo apt-get install ppa-purge && sudo ppa-purge -y ppa:osmadmins/ppa # This if you need to downgrade osm2pgsql to the stock version - -sudo apt-get install -y osm2pgsql +sudo apt install -y osm2pgsql ``` To install Osm2pgsql from Osmadmins PPA: @@ -331,6 +308,16 @@ sudo sysctl -w vm.overcommit_memory=1 To load data from an *.osm* or *.pbf* file to PostGIS, issue the following: +```shell +cd {{ include.cdprogram }} +cd openstreetmap-carto +osm2pgsql -s -C 300 -c -G --hstore --style openstreetmap-carto.style --tag-transform-script openstreetmap-carto.lua -d gis [.osm or .pbf file] +``` + +Go to [the next step](#create-the-data-folder). + +If using a different server: + ```shell cd {{ include.cdprogram }} cd openstreetmap-carto @@ -341,7 +328,7 @@ osm2pgsql -s -C 300 -c -G --hstore --style openstreetmap-carto.style --tag-trans Notice that the suggested process adopts the `-s` (`--slim` option), which uses temporary tables, so running it takes more diskspace (and is very slow), while less RAM memory is used. You might add `--drop` option with `-s` (`--slim`), to also drop temporary tables after import, otherwise you will also find the temporary tables *nodes*, *ways*, and *rels* (these tables started out as pure “helper” tables for memory-poor systems, but today they are widely used because they are also a prerequisite for updates). -If everything is ok, you can go to [Create indexes and grant users](#create-indexes-and-grant-users). +If everything is ok, you can go to [the next step](#create-the-data-folder). Notice that the following elements are used: @@ -378,12 +365,43 @@ or this one: then you need to enable *hstore* extension to the db with `CREATE EXTENSION hstore;` and also add the *--hstore* flag to *osm2pgsql*. Enabling *hstore* extension and using it with *osm2pgsql* will fix those errors. +## Create the *data* folder + +```shell +python3 -m pip install psycopg2-binary + +cd {{ include.cdprogram }} +cd openstreetmap-carto +scripts/get-external-data.py +``` + +The way shapefiles are loaded by the OpenStreetMap tile servers is reported in the related [Chef configuration](https://github.com/openstreetmap/chef/blob/master/roles/tile.rb). + +Read [scripted download](https://github.com/gravitystorm/openstreetmap-carto/blob/master/INSTALL.md#scripted-download) for further information. + ## Create indexes and grant users Create partial indexes to speed up the queries included in *project.mml* and grant access to all *gis* tables to avoid *renderd* errors when accessing tables with user *{{ pg_login }}*. - Add the partial geometry indexes indicated by *openstreetmap-carto*[^93] to provide effective improvement to the queries: + ```shell + cd {{ include.cdprogram }} + cd openstreetmap-carto + HOSTNAME=localhost # set it to the actual ip address or host name + psql -d gis -f indexes.sql + ``` + + Alternative mode: + + ```shell + cd {{ include.cdprogram }} + cd openstreetmap-carto + scripts/indexes.py | psql -d gis + ``` + + If using a different host: + ```shell HOSTNAME=localhost # set it to the actual ip address or host name cd {{ include.cdprogram }} @@ -391,10 +409,23 @@ Create partial indexes to speed up the queries included in *project.mml* and gra scripts/indexes.py | psql -U {{ pg_user }} -h $HOSTNAME -d gis ``` + Alternative mode with a different host: + + ```shell + HOSTNAME=localhost # set it to the actual ip address or host name + psql -U {{ pg_user }} -h $HOSTNAME -d gis -f indexes.sql + ``` + - {% include_relative _includes/grant.md %} To list all tables available in the *gis* database, issue the following command: +```shell +psql -d gis -c "\dt+" +``` + +or: + ```shell psql -U {{ pg_user }} -h $HOSTNAME -d gis -c "\dt+" ``` diff --git a/pages/_includes/scripts-osm-carto.md b/pages/_includes/scripts-osm-carto.md index 31099b2..4f860ca 100644 --- a/pages/_includes/scripts-osm-carto.md +++ b/pages/_includes/scripts-osm-carto.md @@ -1,48 +1,40 @@ The following scripts are provided to support coding. They are necessary and useful solely during making changes to the map style and are unnecessary for map rendering. -### scripts/get-shapefiles.py +### scripts/get-external-data.py This script generates and populates the *data* directory with all needed shapefiles, including indexing them through *shapeindex*. Check [INSTALL](https://github.com/gravitystorm/openstreetmap-carto/blob/master/INSTALL.md) for further documentation. ```shell -Command-line options: get-shapefiles.py [-h] [-c] [-d ] [-e] [-f] [-l] [-n] - [-p] [-r] [-s] [-u] [--world-boundaries] - [--simplified-land] [--ne-admin] [--land-polygons] - [--icesheet-polygons] [--icesheet-outlines] +usage: get-external-data.py [-h] [-f] [-c CONFIG] [-D DATA] [-d DATABASE] [-H HOST] [-p PORT] [-U USERNAME] [-v] [-q] [-w PASSWORD] [-R RENDERUSER] + +Load external data into a database optional arguments: -h, --help show this help message and exit - -c, --check check whether the 'data' directory already exists - -d , --directory - set the name of the data directory (default: 'data') - -e, --no-extract do not populate target directories with the expansion - of downloaded data - -f, --force force continuing even if project.mml does not exist - -l, --no-curl do not use 'curl' even if available - -n, --no-download do not download archive if already existing locally - -p, --pause pause before starting - -r, --remove remove each downloaded archive after its expansion - -s, --no-shape do not run shapeindex - -u, --update force downloading files even if not newer than the - locally existing ones - --world-boundaries only process world_boundaries - --simplified-land only process simplified-land-polygons-complete-3857 - --ne-admin only process ne_110m_admin_0_boundary_lines_land - --land-polygons only process land-polygons-split-3857 - --icesheet-polygons only process antarctica-icesheet-polygons-3857 - --icesheet-outlines only process antarctica-icesheet-outlines-3857 + -f, --force Download new data, even if not required + -c CONFIG, --config CONFIG + Name of configuration file (default external-data.yml) + -D DATA, --data DATA Override data download directory + -d DATABASE, --database DATABASE + Override database name to connect to + -H HOST, --host HOST Override database server host or socket directory + -p PORT, --port PORT Override database server port + -U USERNAME, --username USERNAME + Override database user name + -v, --verbose Be more verbose. Overrides -q + -q, --quiet Only report serious problems + -w PASSWORD, --password PASSWORD + Override database password + -R RENDERUSER, --renderuser RENDERUSER + User to grant access for rendering ``` -The script supports Windows, UNIX, Python 2.7, Python 3 and *curl* when installed (anyway *curl* is not required, for more comfortable Windows support). Installation of *shapeindex* is a prerequisite to index files, but is not strictly required if `-s` option is used (anyway, old indexes are not automatically removed; it is better to manually remove indexes from the subfolders when updating the data directory without updating indexes). - -*get-shapefiles.py* can be run from the *scripts* directory of *openstreetmap-carto*, or from its base folder, or through absolute path from any directory. It allows a default Web proxy and also the configuration of the HTTP_PROXY environment variable. Windows PAC and NTLM authentication are not supported. - -The code exploits an internal dictionary for easy adaptation to future changes. +*get-external-data.py* can be run from the *scripts* directory of *openstreetmap-carto*, or from its base folder. Typical usage: ```shell -$ scripts/get-shapefiles.py +scripts/get-external-data.py ``` ### scripts/generate_road_colours.py @@ -157,4 +149,4 @@ Typical usage: $ scripts/index.py > index.sql ``` -A goal with the indexes is to have them general-purpose enough to not need frequent changing with stylesheet changes, but to be usable with many versions, and potentially other styles. \ No newline at end of file +A goal with the indexes is to have them general-purpose enough to not need frequent changing with stylesheet changes, but to be usable with many versions, and potentially other styles. diff --git a/pages/_includes/update-ubuntu.md b/pages/_includes/update-ubuntu.md index bc29db3..074cfe0 100644 --- a/pages/_includes/update-ubuntu.md +++ b/pages/_includes/update-ubuntu.md @@ -1,7 +1,7 @@ The goal for this procedure is to use [Ubuntu packages](https://en.wikipedia.org/wiki/Ubuntu_(operating_system)#Package_classification_and_support) and official [PPA](https://developer.ubuntu.com/en/publish/other-forms-of-submitting-apps/ppa/)s whenever possible. -We consider using [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu_(operating_system)) 18.04 LTS [Bionic Beaver](https://en.wikipedia.org/wiki/Ubuntu_version_history#Ubuntu_18.04_LTS_(Bionic_Beaver)), suggested operating system version. +We consider using [Ubuntu](https://en.wikipedia.org/wiki/Ubuntu_(operating_system)) 20.04.2 LTS [Focal Fossa](https://en.wikipedia.org/wiki/Ubuntu_version_history#Ubuntu_20.04_LTS_(Focal_Fossa)), or 18.04 LTS [Bionic Beaver](https://en.wikipedia.org/wiki/Ubuntu_version_history#Ubuntu_18.04_LTS_(Bionic_Beaver)), suggested operating system version. Other tested O.S. include Ubuntu 16.04 LTS [Xenial Xerus](https://en.wikipedia.org/wiki/Ubuntu_version_history#Ubuntu_16.04_LTS_.28Xenial_Xerus.29), Ubuntu 15.4 [Vivid Vervet](https://en.wikipedia.org/wiki/Ubuntu_version_history#Ubuntu_15.04_.28Vivid_Vervet.29) or Ubuntu 14.04.3 LTS [Trusty Tahr](https://en.wikipedia.org/wiki/Ubuntu_version_history#Ubuntu_14.04_LTS_.28Trusty_Tahr.29) (other versions should work). All should be [64-bit](https://en.wikipedia.org/wiki/64-bit_computing) computing architecture. Other distributions like Debian might be checked, but could require changes to the installation procedure. @@ -34,6 +34,8 @@ If on a brand new system you also want to do `sudo apt-get dist-upgrade && sudo sudo apt-get -y install ca-certificates gnupg curl unzip gdal-bin tar wget bzip2 build-essential clang +Check prerequisites suggested by [openstreetmap-carto](https://github.com/gravitystorm/openstreetmap-carto/blob/master/Dockerfile#L11-L12). + For the subsequent installation steps, we suppose that `cd` defaults to your home directory. ### Configure a swap