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


System Requirements

External library dependencies

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 docbook-xsl

    On Windows, you can find libxml2 and its dependencies at 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. Usually, you'll want to add a local configuration file overriding values from mojomojo.conf. Since MojoMojo is a Catalyst application, it conforms to the naming convention for such configuration files and settings you add to mojomojo_local.conf will override those in mojomojo.conf (details at the Catalyst wiki - What is the precedence of various configuration setting locations?.

    To point MojoMojo to an arbitrary configuration file, set


MYAPP_CONFIG is also a Catalyst-style environment variable name.

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 make
aptitude install libxslt1-dev libgdbm-dev docbook-xsl docbook-xsl-doc-html
aptitude install git-arch
git clone git://
# optional: git tag ; git checkout <a release tag>
cpan -i Module::Install
cd mojomojo
perl Makefile.PL
make test
# change mojomojo.conf if necessary
script/  # creates database
script/  # launch development server

Installing the latest build from GitHub on openSuSE 11.2

Installing on openSuSE

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


In general, upgrading via CPAN (or your equivalent distribution package) should be the only step required to upgrade your MojoMojo installation:

n@fendahl:~$ sudo cpan
cpan[1]> ]> install  MojoMojo                                                                         
Running  install  for  module  'MojoMojo'
Running  make  for  M/MR/MRAMBERG/MojoMojo-1.00.tar.gz
Running  make  test
t/01app.t  .......................  ok   
t/02pod.t  .......................  ok     
t/03podcoverage.t  ...............  skipped:  set  TEST_POD  to  enable  this  test
t/04context.t  ...................  ok      [snip]All  tests  successful.
Files=54,  Tests=624,  165  wallclock  secs  (  0.20  usr    0.11  sys +  + 99.55  cusr    5.01  csys =  = 104.87  CPU)
Result:  PASS
  /usr/bin/make  test  --  OK
Running  make  install
Prepending  /home/justin/.cpan/build/MojoMojo-1.00-hLVXEf/blib/arch  /home/justin/.cpan/build/MojoMojo-1.00-hLVXEf/blib/lib  to  PERL5LIB  for  'install'
Installing  /usr/local/share/perl/5.10.0/
Installing  /usr/local/share/perl/5.10.0/MojoMojo/mojomojo.conf[snip]Installing  /usr/local/bin/
Installing  /usr/local/bin/
Installing  /usr/local/bin/
Installing  /usr/local/bin/
Installing  /usr/local/bin/
Appending  installation  info  to  /usr/lib/perl/5.10/perllocal.pod
  /usr/bin/make  install    --  OK

If you come from a pre-1.00 version to 1.00, please check mojomojo.conf for updates to the database connection info. The section should look like this:

    <connect_info>    # DB User
    user              db_user
    password          db_password    # SQLite DSN (default database type, recommended for small to medium deployments)
    dsn               dbi:SQLite:mojomojo.db    ...    </connect_info>

Other than that, there are no database schema changes planned as of yet, and a cpan MojoMojo (or git pull) should take care of upgrading.


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