]> git.openstreetmap.org Git - rails.git/blobdiff - INSTALL.md
Merge remote-tracking branch 'upstream/pull/3655'
[rails.git] / INSTALL.md
index 1215cc2613ca62e40aff6bd4dd8414d8e4b923a7..3d591c92de5fc36e775e5b9f42106ed7896f19d9 100644 (file)
@@ -24,7 +24,6 @@ of packages required before you can get the various gems installed.
 
 * Ruby 2.7+
 * PostgreSQL 9.1+
-* ImageMagick
 * Bundler (see note below about [developer Ruby setup](#rbenv))
 * Javascript Runtime
 
@@ -33,10 +32,10 @@ These can be installed on Ubuntu 20.04 or later with:
 ```
 sudo apt-get update
 sudo apt-get install ruby2.7 libruby2.7 ruby2.7-dev \
-                     libmagickwand-dev libxml2-dev libxslt1-dev nodejs \
+                     libvips-dev libxml2-dev libxslt1-dev nodejs \
                      apache2 apache2-dev build-essential git-core firefox-geckodriver \
                      postgresql postgresql-contrib libpq-dev libsasl2-dev \
-                     imagemagick libffi-dev libgd-dev libarchive-dev libbz2-dev yarnpkg
+                     libffi-dev libgd-dev libarchive-dev libbz2-dev yarnpkg
 sudo gem2.7 install bundler
 ```
 
@@ -48,11 +47,11 @@ For Fedora, you can install the minimum requirements with:
 
 ```
 sudo dnf install ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems \
-                 libxml2-devel js \
+                 libxml2-devel nodejs \
                  gcc gcc-c++ git \
-                 postgresql postgresql-server postgresql-contrib \
-                 perl-podlators ImageMagick libffi-devel gd-devel libarchive-devel \
-                 bzip2-devel nodejs-yarn
+                 postgresql postgresql-server postgresql-contrib libpq-devel \
+                 perl-podlators libffi-devel gd-devel libarchive-devel \
+                 bzip2-devel nodejs-yarn vips-devel
 ```
 
 If you didn't already have PostgreSQL installed then create a PostgreSQL instance and start the server:
@@ -90,7 +89,7 @@ Installing other dependencies:
 
 * Install Homebrew from https://brew.sh/
 * Install the latest version of Ruby: `brew install ruby`
-* Install other dependencies: `brew install imagemagick libxml2 gd yarn pngcrush optipng pngquant jhead jpegoptim gifsicle svgo`
+* Install other dependencies: `brew install libxml2 gd yarn pngcrush optipng pngquant jhead jpegoptim gifsicle svgo advancecomp vips`
 * Install Bundler: `gem install bundler` (you might need to `sudo gem install bundler` if you get an error about permissions - or see note below about [developer Ruby setup](#rbenv))
 
 You will need to tell `bundler` that `libxml2` is installed in a Homebrew location. If it uses the system-installed one then you will get errors installing the `libxml-ruby` gem later on<a name="macosx-bundle-config"></a>.
@@ -102,8 +101,7 @@ bundle config build.libxml-ruby --with-xml2-config=/usr/local/opt/libxml2/bin/xm
 If you want to run the tests, you need `geckodriver` as well:
 
 ```
-brew tap homebrew/cask
-brew cask install geckodriver
+brew install geckodriver
 ```
 
 Note that OS X does not have a /home directory by default, so if you are using the GPX functions, you will need to change the directories specified in config/application.yml.
@@ -219,7 +217,7 @@ bundle exec rake db:migrate
 To ensure that everything is set up properly, you should now run:
 
 ```
-bundle exec rake test:db
+bundle exec rails test:all
 ```
 
 This test will take a few minutes, reporting tests run, assertions, and any errors. If you receive no errors, then your installation is successful.
@@ -244,7 +242,7 @@ After installing this software, you may need to carry out some [configuration st
 
 # Installing compiled shared library database functions (optional)
 
-There are special database functions required by a (little-used) API call, the migrations and diff replication. The former two are provided as *either* pure SQL functions or a compiled shared library. The SQL versions are installed as part of the recommended install procedure above and the shared library versions are recommended only if you are running a production server making a lot of `/changes` API calls or need the diff replication functionality.
+There are special database functions required by a (little-used) API call, the migrations and diff replication. The former two are provided as *either* pure SQL functions or a compiled shared library. The SQL versions are installed as part of the recommended install procedure above and the shared library versions are recommended only if you are running a production server and need the diff replication functionality.
 
 If you aren't sure which you need, stick with the SQL versions.
 
@@ -271,16 +269,13 @@ cd ../..
 If you previously installed the SQL versions of these functions, we'll need to delete those before adding the new ones:
 
 ```
-psql -d openstreetmap -c "DROP FUNCTION IF EXISTS maptile_for_point"
 psql -d openstreetmap -c "DROP FUNCTION IF EXISTS tile_for_point"
 ```
 
 Then we create the functions within each database. We're using `pwd` to substitute in the current working directory, since PostgreSQL needs the full path.
 
 ```
-psql -d openstreetmap -c "CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 AS '`pwd`/db/functions/libpgosm', 'maptile_for_point' LANGUAGE C STRICT"
 psql -d openstreetmap -c "CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8 AS '`pwd`/db/functions/libpgosm', 'tile_for_point' LANGUAGE C STRICT"
-psql -d openstreetmap -c "CREATE FUNCTION xid_to_int4(xid) RETURNS int4 AS '`pwd`/db/functions/libpgosm', 'xid_to_int4' LANGUAGE C STRICT"
 ```
 
 # Ruby development install and versions<a name="rbenv"></a> (optional)