X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/c93606387698109949990efd09e38f372349ff1a..cf462c15df14233e4ced9e1bad899c4a73903f37:/INSTALL.md?ds=sidebyside
diff --git a/INSTALL.md b/INSTALL.md
index 1215cc261..3d591c92d 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -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.
@@ -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 (optional)