Osmosis/Installation

From OpenStreetMap Wiki
Jump to navigation Jump to search

Osmosis installation is usually quite straightforward and lightweight. Osmosis is only a small command line tool after all, however it does require java on your system. This page gives instructions for installing osmosis on different operating systems as well as general information on #environment variables and config files



Installing pre-built Osmosis

Linux


wget https://github.com/openstreetmap/osmosis/releases/download/... (check https://github.com/openstreetmap/osmosis/releases for the URL to the latest release)
mkdir osmosis
mv osmosis-latest.tgz osmosis
cd osmosis
tar xvfz osmosis-latest.tgz
rm osmosis-latest.tgz
chmod a+x bin/osmosis
bin/osmosis

If you use Arch Linux you can install Osmosis via AUR package: osmosis.

Windows

See Osmosis/Quick_Install_(Windows)

Building from source

Requirements

Building Osmosis from source currently requires at least Java Development Kit 1.6 (see Osmosis#Notes for details), Junit, ant, and ant-optional.


Steps

cd ~/src
git clone git://github.com/openstreetmap/osmosis.git
cd osmosis
./gradlew assemble

Osmosis does not build with 'ant' anymore. Please see the readme file for usage with gradlew.

The compiled package can then be run:

package/bin/osmosis

For up-to-date instructions, see the readme file.

Debian

Osmosis is in Debian since the Squeeze release, actually in 0.34 version. If you use debian stable, testing or sid you can install osmosis as simple as:

apt-get install osmosis

OS X

macOS Mojave (10.14)

Latest stable version (0.47 at the time of writing, Feb 2019) works fine out of the box, once a symbolic link to the osmosis executable has been created into a directory in the PATH.

Example:

$ PATH=$PATH:~/bin
$ ln -s ~/opt/osmosis/bin/osmosis ~/bin

The first line should be put into ~/.bash_profile configuration file, so that the addition of directory ~/bin to the PATH becomes permanent.

OS X 10.5 or earlier

Running osmosis on Mac OS X 10.5 requires switching the Java framework to 1.6 (from the 1.5 default) by setting the shell variable JAVACMD before executing osmosis. This works on 2007 MacBook Pro Dual Core 2.44MHz and later.

export JAVACMD="/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/java -Xmx128m"

Alternative: Installation instructions for OS X 10.5 are same as above, except with the caveat that Java 1.6 is currently only supported on 64-bit Intel machines. You could try SoyLatte instead.

Homebrew

Package manager homebrew has a 'recipe' for osmosis. To install the latest stable version, do

brew install osmosis

Please notice that mapsforge plugin map-writer 0.9+ requires Osmosis 0.46+. At the time of writing (Feb 2019) the Homebrew recipe provides older version 0.45.

Environment variables and config files

Things may well run OK without changing the defaults, but you can configure JVM Options and other osmosis defaults by setting environment variables which are picked up by the bin/osmosis script (tacked on to the java command which is invoked there)

JAVACMD - The java command to launch osmosis.
JAVACMD_OPTIONS - The options to append to the java command, typically used to modify JVM settings such as max memory.
OSMOSIS_OPTIONS - The options to apply to all osmosis invocations, typically used to add plugins or make quiet operation the default.

To set an environment variable in the scope of your current terminal, just do a command such as:

export JAVACMD_OPTIONS=-Xmx2G

(This example will bump up the amount of available memory for Java up to 2GB. See Osmosis/Tuning for details)

But if you want to save this so that it happens every time you run osmosis, put the command in a config file. The start-up script looks for a config file at a couple of different possible locations:

/etc/osmosis - (no file extension) This applies to all users on a *nix system.
~/.osmosis - (no file extension) This applies to just your user on a *nix system.
%ALLUSERSPROFILE%\osmosis.bat - This applies to all users on a windows system.
%USERPROFILE%\osmosis.bat - This applies to just your user on a windows system.

Fo example if you want to set the memory and the temporary file use you may enter this line into the config file:

export JAVACMD_OPTIONS="-Xmx2G -Djava.io.tmpdir=/mnt/database/tmp/"