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


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

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


See Osmosis/Quick_Install_(Windows)

Building from source


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


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:


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


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


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.


$ 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.


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 this time (May 2024) the Homebrew recipe installs version 0.49.2.

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:


(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/"