Setting the OMERO_HOME environment variable¶
Warning
OMERO_HOME
should be considered strictly internal to OMERO
and be reserved for development or “power usage”.
Rationale¶
OMERO_HOME
defines the root deployment directory to be used by
OMERO command line tools.
Setting it allows to switch between different versions of applications or libraries during development.
Note
Despite a familiar-sounding name, OMERO_HOME
does not
denote the server installation directory.
Caveats¶
As a “power switch”, OMERO_HOME
will override the directory layout
as detected by the bin/omero family of utilities.
This could cause hard-to-detect problems at runtime. Environments hosting multiple OMERO versions would be particularly prone to such side effects, as illustrated below.
# Installation directory layout:
# /opt
# +-- OMERO.server-version-4.4.10
# +-- OMERO.server-version-5.0.0
# OMERO-4 was first installed, and is conveniently referenced through OMERO_HOME
$ echo $OMERO_HOME
> /opt/OMERO.server-version-4.4.10
# Update the configuration for OMERO-4
$ /opt/OMERO.server-version-4.4.10/bin/omero config set omero.db.name 'omero_4_database'
$ /opt/OMERO.server-version-4.4.10/bin/omero config get omero.db.name
> omero_4_database
# Update the configuration for OMERO-5
$ /opt/OMERO.server-version-5.0.0/bin/omero config set omero.db.name 'omero_5_database'
$ /opt/OMERO.server-version-5.0.0/bin/omero config get omero.db.name
> omero_5_database
# Double check the OMERO-4 configuration...
# Using OMERO_HOME has taken precedence over the current directory
# The OMERO-4 server instance has been mistakenly updated to point at
# a version 5 database schema.
# Furthermore, the issue might go unnoticed until the next OMERO-4 restart.
$ /opt/OMERO.server-version-4.4.10/bin/omero config get omero.db.name
> omero_5_database
Recommendations¶
- If you are using an environment variable to define the server installation root,
choose a different name, as represented by
OMERO_PREFIX
in this documentation. - If you are nevertheless using
OMERO_HOME
in your local environment, it is worth checking for potentially lingering global definitions (eg. .bashrc, .profile, /etc/profile.d).
See also