.. _install_from_source:

Installing OMERO from source
============================

Using the source code
---------------------

The source code of each release of OMERO is available for download from the
:downloads:`Source code <#code>` section of the OMERO download page.

.. note::
  At the moment, this source code bundle does not contain the version of
  Bio-Formats. To include this version information, you will need to manually
  copy the :file:`ant/gitversion.xml` file included in the source code bundle
  of Bio-Formats for the same release under :file:`components/bioformats/ant`.

Using the Git source repository
-------------------------------

To use the Git source repository, you will need to install Git on your system.
See the :devs_doc:`Using Git <using-git.html>` section of the Contributing
documentation for more information on how to install and configure Git.

The main repository for OMERO is available from
https://github.com/openmicroscopy/openmicroscopy.
Most OME development is currently happening on GitHub, therefore it is highly
suggested that you become familiar with how it works, if not create an account
for yourself.

Start by cloning the official repository::

  git clone https://github.com/openmicroscopy/openmicroscopy.git

Since the openmicroscopy repository now makes use of submodules, you first
need to initialize all the submodules::

  cd openmicroscopy
  git submodule update --init

Alternatively, with version 1.6.5 of git and later, you can pass the
:option:`--recursive` option to git clone and initialize all submodules::

  git clone --recursive https://github.com/openmicroscopy/openmicroscopy.git

.. seealso::
  :devs_doc:`Using Git <using-git.html>`
    Section of the contributing documentation explaining how to use Git for
    contributing to the source code.

Building OMERO
--------------

To install the dependencies required to run the OMERO.server on Linux
or Mac OS X, take a look at the
:doc:`/sysadmins/unix/server-installation` or the
:doc:`/sysadmins/unix/server-install-homebrew` sections.

Additional dependencies are necessary for building the server and clients:

- `Genshi <http://genshi.edgewall.org/>`_ can be installed using either the
  package manager or Python packaging tools such as ``easy_install`` or
  ``pip``::

    pip install Genshi

- Ice Python and Java development packages may need to be explicitly installed
  on Linux.

Finally, some environment variables may need to be set up before building
the server:

- If the system slice files cannot be found you must set :envvar:`SLICEPATH`
  to point to the :file:`slice` directory of the Ice installation.

For example, on CentOS 6 the following should be sufficient to run the default
build::

    yum install java-1.7.0-openjdk-devel python-genshi python-setuptools \
        ice-servers ice-python-devel ice-java-devel ice-c++-devel

On Ubuntu 14.04::

    apt-get install openjdk-7-jdk python-genshi python-setuptools zeroc-ice

Once all the dependencies and environment variables are set up, you can build
the server using::

    python build.py

or the clients using::

    python build.py release-clients

.. seealso::

    :doc:`build-system`
        Section of the developer documentation detailing the build system