It's now possible to install MongooseIM from source in two modes:
system - it's used internally to generate Linux packages (.deb, .rpm)
user - which is the default mode and used for testing on travis and
in development
You can also build OS specific packages by using the tools in [MongooseIM repo root]/tools/pkg - refer to README.md therein.
Configure script
The tools/configure script can be used to specify which 3rd party
dependencies should be included in the final release or to set the installation
prefix and installation mode. More details can found in the tool's help.
The help is printed when the script is run without any parameters
tools/configure:
1 2 3 4 5 6 7 8 9101112131415161718192021222324
configure: OPTIONS
Specifies which 3rd party deps will be included in the release.
Writes configure.out file as output - this file can be sourced with:
. configure.out
Writes rel/configure.vars.config which can be used as Reltool input.
3rd party apps:
with-none include no 3rd party drivers
with-all include all drivers
with-mysql include mysql driver
with-odbc include an ODBC driver (requires unixodbc to compile)
with-pgsql include pgsql driver
with-redis include redis driver
with-riak include riak driver
Options:
prefix Installation PREFIX directory. Default: /usr/local
system Install files into $PREFIX/{bin, etc, ...} instead of a completely self contained release. Default: no
user System user to run the server as. Default:
This script is also accessible via the make configure target.
Example
If mysql and redis are the only drivers that should be included in the
release, run the following command before make rel:
1
$ ./tools/configure with-mysql with-redis
You only need to run the ./tools/configure command once (unless changing the release's config is needed to
include some other dependencies).
System install
To manually test the installation run tools/test-install.sh.
This script is intended for careful inspection by a human user, not for automation.
Results should be similar to those described below.
Running make install will blindly overwrite any configs it encounters on its way.
Mnesia database and log files are preserved only due to the fact that they're
not build process artifacts.