Skip to content

OLIVE (Native Linux) Installation

OLIVE Folder Structure Overview

Typical OLIVE installations for native, linux-based operating systems follow the general formats shown below. This is for using OLIVE on the OS the OLIVE runtime has been created on/for. For OLIVE 5.5.2 this is currently Ubuntu 20.04. This may be different for different OLIVE versions.

Delivery Type Caution

If your delivery is what we call a "Martini" package, based on a docker container, please refer to the OLIVE Martini Docker Container Setup. If you instead have a standalone OLIVE docker container (this is unlikely as the delivery method is deprecated), please instead go to the OLIVE Docker Container Setup Guide.

We recommend installing the OLIVE Runtime and OLIVE itself within a directory in an easy-to-find location. Typically olive5.x.y/ within $HOME is a reasonable starting place. Plugins we generally store outside of this location, in a directory we name oliveAppData to allow for retention of plugins and audio enrollments if/when a new version of OLIVE is installed. $HOME is again often a reasonable location for this folder.

The configuration or relationship between the runtime and the OLIVE package itself generally matches one of the following two examples. In either case, you will need to properly set up the OLIVE environment before performing any operations with OLIVE, and SRI provides a script to make this as straightforward as possible.

olive_env.sh setup script

This script is included with every release and is generally the recommended and easiest way to properly set up the OLIVE environment, as shown above. It should be possible to use this script to cover environmental setup in even advanced OLIVE deployments. This script will properly set a number of necessary environment variables and paths essential for OLIVE operation all in one go. Depending on how you've chosen to lay out your OLIVE package on disk, you may need to source two of these scripts. As a quick primer, this is the README included at the top of the olive_env.sh script, that will be explained in more detail below:

    # Sets the Olive/Scenic environment when running from a distribution.
    # Assumes this will be sourced in the Olive directory, as:
    #
    # % source olive_env.sh
    #
    # If this script is sourced in the runtime distribution, it will only set
    # runtime-related values.
    #
    # If this script is sourced in the Olive distribution, it will set both
    # OLIVE (SCENIC) and runtime-related values if:
    # (1) the Olive directory is a sub-directory of the runtime directory
    # or (2) the Olive and runtime directories have been combined.
    #
    # If the Olive directory is a subdirectory of the runtime, then you
    # should only source olive_env.sh from the Olive directory.
    #
    # If the runtime and Olive directories are completely separate, then
    # do the following (in this order, so that $OLIVE paths come before
    # $OLIVE_RUNTIME paths):
    # 
    # (1) cd /path/to/runtime; source olive_env.sh
    # (2) cd /path/to/olive; source olive_env.sh

One important thing to note is that the olive_env.sh scripts do not cover setting the OLIVE_APP_DATA environment variable, which informs the server of the location of the OLIVE plugins, among other things. More details available here. This is a very important step to make sure the Server can find and utilize the appropriate plugins. Setting this variable is included in each of the examples below.

OLIVE/OLIVE-Runtime Layouts

Often, the OLIVE Runtime and OLIVE itself are placed side-by-side in the same parent directory, for easier readability. If this configuration is used, it is necessary to source two separate olive_env.sh files to properly establish the OLIVE environment, as outlined in the olive_env.sh README shown above. You should always start by sourcing the olive_env.sh file for the runtime. An example file structure of side-by-side OLIVE and OLIVE runtime directories:

    $HOME
        olive5.5.2/
            runtime-5.5.2-CentOS_Linux-7-x86_64/
            olive-5.5.2-CentOS_Linux-7-x86_64/
            documentation/
        oliveAppData/
            plugins/
                sad-dnn-v7.0.0
                sid-dplda-v2.0.0/
                lid-embedplda-v2.0.0/

Example environment setup with this configuration:

    $ cd $HOME/olive5.5.2/runtime-5.5.2-CentOS_Linux-7-x86_64/
    $ source olive_env.sh
    $ cd $HOME/olive5.5.2/olive-5.5.2-CentOS_Linux-7-x86_64/
    $ source olive_env.sh
    $ export OLIVE_APP_DATA=$HOME/oliveAppData/

Alternately, the OLIVE package can be nested within the runtime directory, a structure shown in the example below. If this arrangement is used, it is only necessary to source the olive_env.sh script within the OLIVE package, as it is aware that its parent directory is the OLIVE runtime, and appropriately establishes the environment with this information.

    $HOME
        olive5.5.2/
            runtime-5.5.2-CentOS_Linux-7-x86_64/
                olive-5.5.2-CentOS_Linux-7-x86_64/
            documentation/
        oliveAppData/
            plugins/
                lid-embed-v2/
                sad-dnn-v4a/
                sid-embed-v2/

Example environment setup with this configuration:

    $ cd $HOME/olive5.5.2/runtime-5.5.2-CentOS_Linux-7-x86_64/olive-5.5.2-CentOS_Linux-7-x86_64/
    $ source olive_env.sh
    $ export OLIVE_APP_DATA=$HOME/oliveAppData/

After performing these installation and setup steps, you should be ready to get started and run your own instance of the OLIVE Server

For more information on what variables are being established by this environment setup script and what is needed by OLIVE to run, continue on to the Environment Variables section of the OLIVE Server Page. For more information on getting started with running the OLIVE server, continue on to the Running The Server section. Or skip to the OLIVE Runtime for more details about the purpose and contents of the OLIVE Runtime.