This guide explains what is necessary to get OpenNMS build on your local MacOS machine.
If you prefer using docker, move on. This topic is not for you.
In order to compile OpenNMS at least the following requirements should be met:
The latest JDK 8 version should be installed
cloned github OpenNMS repository
Jicmp, jicmp6 (both optional)
Satisfy compile Prerequisites
Git is required to interact with the OpenNMS’ source code repository hosted on Github
The easiest way to install
git, is to just type in
git in the terminal.
MacOS asks you to install
XCode Command Line Tools.
However as we need other dependencies as well, I’d recommend installing homebrew instead.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
See https://brew.sh/index_de for more details.
This will also install the XCode command line tools and therefore git as well.
Afterwards verify with
git that it actually works:
> git --version git version 2.20.1 (Apple Git-117)
Install JDK 8
As of writing this topic only JDK 8 is supported to build from source. I personally use Oracle JDK 8, but you can also use OpenJDK if you like.
Download Oracle JDK 8 for MacOS from https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html.
After Installation verify that java has been correclty installed:
> java -version java version "1.8.0_211" Java(TM) SE Runtime Environment (build 1.8.0_211-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
Windows Installer (Makensis)
When building OpenNMS from source also a windows installer is compiled. In order to do this successfully you can either install the according packages via
brew install makensis
If you are not interested in the Windows Installer bits, you can also simply use a
nsis.sh script which simply exits with
0 and put it on your path.
makensis can be invoked from your path:
> makensis Usage: makensis [ option | script.nsi | - ] [...]
I personally like to use
mvn commands instead of
./assemble.pl in certain cases:
brew install maven
Simply verify afterwards:
> mvn --version Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-04T21:00:29+02:00) Maven home: /usr/local/Cellar/maven/3.6.1/libexec Java version: 1.8.0_211, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/jre Default locale: en_DE, platform encoding: UTF-8 OS name: "mac os x", version: "10.14.5", arch: "x86_64", family: "mac"
The version is not that important, but should be anything
Satisfy run prerequisites
JICMP and JICMP 6
brew install automake
brew install autogen
git clone https://github.com/OpenNMS/jicmp.git cd jicmp git submodule update --init --recursive autoreconf -fvi ./configure make
git clone https://github.com/OpenNMS/jicmp6.git cd jicmp6 git submodule update --init --recursive autoreconf -fvi ./configure make
OpenNMS requires a Postgres installation to run.
I personally use the
Postgres.app for MacOS.
Simply download it from here and copy it to your Applications folder.
Now everything should be set up to build OpenNMS from source and afterwards run it from the command line, which is covered in another topic.