Welcome to docs.opsview.com

Compiling and Packaging a Mac OS X Agent

This page details how to build the Mac OS X agent and assumes some basic understanding on compilation on a Mac.


  1. PackageMaker - installed as part of Xcode developer tools (located in: /Developer/Applications/Utilities)
  2. subversion
  3. make, gcc and other compiler tools

You need to have the nagios user and group created on your build server.

sudo dscl . -create /Groups/nagios
sudo dscl . -create /Users/nagios

Basic Steps

Start up Terminal and check out the Opsview source code repository to compile the agent files

cd $HOME
test -d svnroot || mkdir svnroot 
cd svnroot
svn co https://secure.opsview.com/svn/opsview/trunk opsview-core # Need opsview-core due to check_memory plugin
cd opsview-core/opsview-base
make macosx-agent-tar
<enter your password for sudo access>

In Finder navigate to svnroot/opsview-core/opsview-base/macos_agent_pkg and double-click on OpsviewAgent to load into PackageMaker.

Expand ROOT in the left hand panel to show a ROOT folder and highlight it, then click on the Configuration tab and amend 'Package Version' appropriately.

Click on 'Build' button - save using an name that includes the MAC OS X version number, package version and architecture of the build as part of the name, i.e.


You should then be able to install this package. After installation, this will create an OpsviewAgent in /Applications. To remove, just move this app to the Trash.

Known Errors

Error: "You cannot install this software on this disk. (null)"

This is an installer issue not package maker. There is nothing you can do on your end other then removing the root volume only flag. It might work to add a VolumeCheck script that only accepts ”/”.

Install error: Can't coerce array into hash at /System/Library/Perl/5.8.8/ExtUtils/Install.pm line 94.

This is due to a version mismatch between ExtUtils::Install at make time and at install time. If you have another copy of ExtUtils::Install, move this away before running make or remove your PERL5LIB envvar that is pointing to it.