Installing MojoMojo

The recommended way install is to follow the GitHub installation steps, so that all MojoMojo files end up in one directory, and you have the latest developer version. If you want to use a release version, after git clone, you can list the tags with git tag, and then checkout a specific tag: git checkout <tag_name>.

On FreeBSD, install the p5-MojoMojo package. A Debian package for MojoMojo will soon be available.

TODO: document where files end up after installation. (alternatively, run updatedb and locate mojomojo_server.pl)

System Requirements

Installation from CPAN

  1. install Catalyst. This can be as easy as cpan Catalyst::Runtime

  2. install the external libraries. For example on Ubuntu, run:

    aptitude install libxml2 libpng-dev libgif-dev libjpeg-dev expat libexpat1-dev
    

    On Windows, you can find libxml2 and its dependencies at http://www.zlatkovic.com/pub/libxml/. You'll need libxml2.dll, iconv.dll and zlib1.dll in a directory listed in PATH.

  3. install MojoMojo:

    To see how likely the installation tests are to succeed, check the CPAN Testers status of the MojoMojo dependencies.

    As with any Catalyst application, mojomojo_*.pl scripts will be installed installed in /usr/local/bin.

  4. configure MojoMojo

    To point MojoMojo to an arbitrary configuration file, set

    MOJOMOJO_CONFIG=/my/other/path.conf
    

Here is an older example installation progress.

Installing the latest build from GitHub, step-by-step

aptitude install libxml2 libpng-dev libgif-dev libjpeg-dev expat libexpat1-dev
aptitude install libxslt1-dev libgdbm-dev docbook-xsl docbook-xsl-doc-html
aptitude install git-arch
git clone git://github.com/marcusramberg/mojomojo.git
# optional: git tag ; git checkout <a release tag>
cpan -i Module::Install
cd mojomojo
perl Makefile.PL
make
make test
# change mojomojo.conf if necessary
script/mojomojo_spawn_db.pl  # creates database
script/mojomojo_server.pl  # launch development server

From here on, see Deployment. If you run into problems, see Troubleshooting.