From 9646ec4edd394fa285ba29d8d505042d7b215e91 Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Wed, 14 Dec 2022 16:24:38 +0100 Subject: [PATCH] drop official support for Ubuntu 18 --- .github/workflows/ci-tests.yml | 28 +--- docs/CMakeLists.txt | 1 - docs/admin/Installation.md | 1 - vagrant/Install-on-Ubuntu-18.sh | 277 -------------------------------- 4 files changed, 2 insertions(+), 305 deletions(-) delete mode 100755 vagrant/Install-on-Ubuntu-18.sh diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 7414cc77..7dffe7bb 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -179,20 +179,13 @@ jobs: strategy: matrix: - name: [Ubuntu-18, Ubuntu-20, Ubuntu-22] + name: [Ubuntu-20, Ubuntu-22] include: - - name: Ubuntu-18 - flavour: ubuntu - image: "ubuntu:18.04" - ubuntu: 18 - install_mode: install-nginx - name: Ubuntu-20 - flavour: ubuntu image: "ubuntu:20.04" ubuntu: 20 install_mode: install-apache - name: Ubuntu-22 - flavour: ubuntu image: "ubuntu:22.04" ubuntu: 22 install_mode: install-apache @@ -215,14 +208,6 @@ jobs: apt-get install -y git sudo wget ln -snf /usr/share/zoneinfo/$CONTAINER_TIMEZONE /etc/localtime && echo $CONTAINER_TIMEZONE > /etc/timezone shell: bash - if: matrix.flavour == 'ubuntu' - - - name: Prepare container (CentOS) - run: | - dnf update -y - dnf install -y sudo glibc-langpack-en - shell: bash - if: matrix.flavour == 'centos' - name: Setup import user run: | @@ -256,14 +241,6 @@ jobs: mkdir data-env-reverse working-directory: /home/nominatim - - name: Prepare import environment (CentOS) - run: | - sudo ln -s /usr/local/bin/nominatim /usr/bin/nominatim - echo NOMINATIM_DATABASE_WEBUSER="apache" > nominatim-project/.env - cp nominatim-project/.env data-env-reverse/.env - working-directory: /home/nominatim - if: matrix.flavour == 'centos' - - name: Print version run: nominatim --version working-directory: /home/nominatim/nominatim-project @@ -271,7 +248,7 @@ jobs: - name: Collect host OS information run: nominatim admin --collect-os-info working-directory: /home/nominatim/nominatim-project - + - name: Import run: nominatim import --osm-file ../test.pbf working-directory: /home/nominatim/nominatim-project @@ -291,7 +268,6 @@ jobs: - name: Prepare update (Ubuntu) run: apt-get install -y python3-pip shell: bash - if: matrix.flavour == 'ubuntu' - name: Run update run: | diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt index 4fa860ad..edfc8829 100644 --- a/docs/CMakeLists.txt +++ b/docs/CMakeLists.txt @@ -23,7 +23,6 @@ foreach (src ${DOC_SOURCES}) endforeach() ADD_CUSTOM_TARGET(doc - COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Ubuntu-18.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Ubuntu-18.md COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Ubuntu-20.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Ubuntu-20.md COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bash2md.sh ${PROJECT_SOURCE_DIR}/vagrant/Install-on-Ubuntu-22.sh ${CMAKE_CURRENT_BINARY_DIR}/appendix/Install-on-Ubuntu-22.md COMMAND PYTHONPATH=${PROJECT_SOURCE_DIR} mkdocs build -d ${CMAKE_CURRENT_BINARY_DIR}/../site-html -f ${CMAKE_CURRENT_BINARY_DIR}/../mkdocs.yml diff --git a/docs/admin/Installation.md b/docs/admin/Installation.md index f3e656d8..1c9b5f3d 100644 --- a/docs/admin/Installation.md +++ b/docs/admin/Installation.md @@ -6,7 +6,6 @@ the following operating systems: * [Ubuntu 22.04](../appendix/Install-on-Ubuntu-22.md) * [Ubuntu 20.04](../appendix/Install-on-Ubuntu-20.md) - * [Ubuntu 18.04](../appendix/Install-on-Ubuntu-18.md) These OS-specific instructions can also be found in executable form in the `vagrant/` directory. diff --git a/vagrant/Install-on-Ubuntu-18.sh b/vagrant/Install-on-Ubuntu-18.sh deleted file mode 100755 index f1b6c3c4..00000000 --- a/vagrant/Install-on-Ubuntu-18.sh +++ /dev/null @@ -1,277 +0,0 @@ -#!/bin/bash -e -# -# hacks for broken vagrant box #DOCS: -sudo rm -f /var/lib/dpkg/lock #DOCS: -export APT_LISTCHANGES_FRONTEND=none #DOCS: -export DEBIAN_FRONTEND=noninteractive #DOCS: - -# -# *Note:* these installation instructions are also available in executable -# form for use with vagrant under vagrant/Install-on-Ubuntu-18.sh. -# -# Installing the Required Software -# ================================ -# -# These instructions expect that you have a freshly installed Ubuntu 18.04. -# -# Make sure all packages are up-to-date by running: -# - - sudo apt update -qq - -# Now you can install all packages needed for Nominatim: - - sudo apt install -y php-cgi - sudo apt install -y build-essential cmake g++ libboost-dev libboost-system-dev \ - libboost-filesystem-dev libexpat1-dev zlib1g-dev\ - libbz2-dev libpq-dev liblua5.3-dev lua5.3\ - postgresql-10-postgis-2.4 \ - postgresql-contrib-10 postgresql-10-postgis-scripts \ - php-cli php-pgsql php-intl libicu-dev python3-pip \ - python3-psutil python3-jinja2 python3-yaml python3-icu git - -# Some of the Python packages that come with Ubuntu 18.04 are too old, so -# install the latest version from pip: - - pip3 install --user python-dotenv datrie pyyaml psycopg2-binary sqlalchemy asyncpg - -# -# System Configuration -# ==================== -# -# The following steps are meant to configure a fresh Ubuntu installation -# for use with Nominatim. You may skip some of the steps if you have your -# OS already configured. -# -# Creating Dedicated User Accounts -# -------------------------------- -# -# Nominatim will run as a global service on your machine. It is therefore -# best to install it under its own separate user account. In the following -# we assume this user is called nominatim and the installation will be in -# /srv/nominatim. To create the user and directory run: -# -# sudo useradd -d /srv/nominatim -s /bin/bash -m nominatim -# -# You may find a more suitable location if you wish. -# -# To be able to copy and paste instructions from this manual, export -# user name and home directory now like this: -# -if [ "x$USERNAME" == "x" ]; then #DOCS: - export USERNAME=vagrant #DOCS: export USERNAME=nominatim - export USERHOME=/home/vagrant #DOCS: export USERHOME=/srv/nominatim -fi #DOCS: -# -# **Never, ever run the installation as a root user.** You have been warned. -# -# Make sure that system servers can read from the home directory: - - chmod a+x $USERHOME - -# Setting up PostgreSQL -# --------------------- -# -# Tune the postgresql configuration, which is located in -# `/etc/postgresql/10/main/postgresql.conf`. See section *Postgres Tuning* in -# [the installation page](../admin/Installation.md#postgresql-tuning) -# for the parameters to change. -# -# Restart the postgresql service after updating this config file. - -if [ "x$NOSYSTEMD" == "xyes" ]; then #DOCS: - sudo pg_ctlcluster 10 main start #DOCS: -else #DOCS: - sudo systemctl restart postgresql -fi #DOCS: - -# -# Finally, we need to add two postgres users: one for the user that does -# the import and another for the webserver which should access the database -# for reading only: -# - - sudo -u postgres createuser -s $USERNAME - sudo -u postgres createuser www-data - -# -# Installing Nominatim -# ==================== -# -# Building and Configuration -# -------------------------- -# -# Get the source code from Github and change into the source directory -# -if [ "x$1" == "xyes" ]; then #DOCS: :::sh - cd $USERHOME - git clone --recursive https://github.com/openstreetmap/Nominatim.git - cd Nominatim -else #DOCS: - cd $USERHOME/Nominatim #DOCS: -fi #DOCS: - -# When installing the latest source from github, you also need to -# download the country grid: - -if [ ! -f data/country_osm_grid.sql.gz ]; then #DOCS: :::sh - wget -O data/country_osm_grid.sql.gz https://nominatim.org/data/country_grid.sql.gz -fi #DOCS: - -# The code must be built in a separate directory. Create this directory, -# then configure and build Nominatim in there: - - mkdir $USERHOME/build - cd $USERHOME/build - cmake $USERHOME/Nominatim - make - sudo make install - - -# Nominatim is now ready to use. You can continue with -# [importing a database from OSM data](../admin/Import.md). If you want to set up -# a webserver first, continue reading. -# -# Setting up a webserver -# ====================== -# -# The webserver should serve the php scripts from the website directory of your -# [project directory](../admin/Import.md#creating-the-project-directory). -# This directory needs to exist when being configured. -# Therefore set up a project directory and create the website directory: - - mkdir $USERHOME/nominatim-project - mkdir $USERHOME/nominatim-project/website - -# The import process will populate the directory later. -# -# Option 1: Using Apache -# ---------------------- -# -if [ "x$2" == "xinstall-apache" ]; then #DOCS: -# -# Apache has a PHP module that can be used to serve Nominatim. To install them -# run: - - sudo apt install -y apache2 libapache2-mod-php - -# You need to create an alias to the website directory in your apache -# configuration. Add a separate nominatim configuration to your webserver: - -#DOCS:```sh -sudo tee /etc/apache2/conf-available/nominatim.conf << EOFAPACHECONF - - Options FollowSymLinks MultiViews - AddType text/html .php - DirectoryIndex search.php - Require all granted - - -Alias /nominatim $USERHOME/nominatim-project/website -EOFAPACHECONF -#DOCS:``` - -# -# Then enable the configuration with -# - - sudo a2enconf nominatim - -# and restart apache: - -if [ "x$NOSYSTEMD" == "xyes" ]; then #DOCS: - sudo apache2ctl start #DOCS: -else #DOCS: - sudo systemctl restart apache2 -fi #DOCS: - -# The Nominatim API is now available at `http://localhost/nominatim/`. - -fi #DOCS: - -# -# Option 2: Using nginx -# --------------------- -# -if [ "x$2" == "xinstall-nginx" ]; then #DOCS: - -# Nginx has no native support for php scripts. You need to set up php-fpm for -# this purpose. First install nginx and php-fpm: - - sudo apt install -y nginx php-fpm - -# You need to configure php-fpm to listen on a Unix socket. - -#DOCS:```sh -sudo tee /etc/php/7.2/fpm/pool.d/www.conf << EOF_PHP_FPM_CONF -[www] -; Replace the tcp listener and add the unix socket -listen = /var/run/php-fpm-nominatim.sock - -; Ensure that the daemon runs as the correct user -listen.owner = www-data -listen.group = www-data -listen.mode = 0666 - -; Unix user of FPM processes -user = www-data -group = www-data - -; Choose process manager type (static, dynamic, ondemand) -pm = ondemand -pm.max_children = 5 -EOF_PHP_FPM_CONF -#DOCS:``` - -# Then create a Nginx configuration to forward http requests to that socket. - -#DOCS:```sh -sudo tee /etc/nginx/sites-available/default << EOF_NGINX_CONF -server { - listen 80 default_server; - listen [::]:80 default_server; - - root $USERHOME/nominatim-project/website; - index search.php index.html; - location / { - try_files \$uri \$uri/ @php; - } - - location @php { - fastcgi_param SCRIPT_FILENAME "\$document_root\$uri.php"; - fastcgi_param PATH_TRANSLATED "\$document_root\$uri.php"; - fastcgi_param QUERY_STRING \$args; - fastcgi_pass unix:/var/run/php-fpm-nominatim.sock; - fastcgi_index index.php; - include fastcgi_params; - } - - location ~ [^/]\.php(/|$) { - fastcgi_split_path_info ^(.+?\.php)(/.*)$; - if (!-f \$document_root\$fastcgi_script_name) { - return 404; - } - fastcgi_pass unix:/var/run/php-fpm-nominatim.sock; - fastcgi_index search.php; - include fastcgi.conf; - } -} -EOF_NGINX_CONF -#DOCS:``` - -# -# Enable the configuration and restart Nginx -# - -if [ "x$NOSYSTEMD" == "xyes" ]; then #DOCS: - sudo /usr/sbin/php-fpm7.2 --nodaemonize --fpm-config /etc/php/7.2/fpm/php-fpm.conf & #DOCS: - sudo /usr/sbin/nginx & #DOCS: -else #DOCS: - sudo systemctl restart php7.2-fpm nginx -fi #DOCS: - -# The Nominatim API is now available at `http://localhost/`. - - - -fi #DOCS: -- 2.39.5