overrides

Overriding Software Versions

Most of the software titles installed in the SBGrid software collection have several versions available. We try to provide at least three versions of each software package, although very old or very new applications may have more or fewer versions respectively.

Display Available Versions

To list the available versions of a software title, you can use the sbgrid-info utility. Running sbgrid-info -l will list the versions for your current platform. From a Linux machine, a search for PyMOL versions looks like this:

$ sbgrid-info -l pymol
Version information for: /programs/x86_64-linux/pymol

Default version:                    2.4.1_198
In-use version:                     2.4.1_198

Installed versions:                 2.4.1_198 2.2.3 1.8.6.0 1.7.6.6
Other available versions:           2.2.3 1.8.6.0 1.7.6.6
Overrides use this shell variable:  PYMOL_X

Running sbgrid-info -L will print the available versions for both of the current platforms (macOS and x86_64 Linux).

$  sbgrid-info -L gnuplot
  Version information for: /programs/x86_64-linux/gnuplot

Default version:                    4.6.4
In-use version:                     4.6.4
Other available versions:           4.6.0 4.4.3 4.2.6
Overrides use this shell variable:  GNUPLOT_X

  Version information for: /programs/i386-mac/gnuplot

Default version:                    4.6.4
Other available versions:           4.4.3 4.2.6 4.6.0
Overrides use this shell variable:  GNUPLOT_M

Overriding Default Versions

The default version of an application can be changed in the SBGrid environment by setting it's corresponding shell variable. To do this, simply specify the version in the correct shell variable (shown in the output above).

Continuing the example above, setting the version depends on your shell type which can be shown by running echo $SHELL. The default shell on Linux is typically bash and macOS is typically zsh.

For bash or zsh, you can set the version for PYMOL on linux using

PYMOL_X=2.2.3

tcsh is

setenv PYMOL_X 2.2.3

then launch the program with the pymol command from the terminal normally. In this case, the 2.2.3 version will run (unless it is not installed).

On macOS the procedure is the same but uses the PYMOL_M variable.

Making version changes persistent

To make version changes persistent across shells, a .sbgrid.conf file is required in $HOME. The shell configuration scripts will read the $HOME/.sbgrid.conf file and set the defined version.

The syntax for .sbgrid.conf is a simple key=value pair. E.g. it should look like this:

# This file can include comments
<APPLICATION>_X=1.2

where <APPLICATION>_X is the name of the application followed by an underscore and the shorthand initial for the architecture. All SBGrid application variables are capitalized. The last field on the line is the software version number you want to use. The initials for each software branch are _X and _M for Linux and macOS respectively:

To quickly open the overrides file in your default $EDITOR, you can run sbgrid-overrides -e.

When you open a new shell, you will see a message about the overridden version. Note that a site administrator can create sitewide or machine-specific overrides as well.

The example output below shows PyMOL on linux being changed from the default version on macOS:

 Configuration options in effect for this shell:
  Variable             Setting         Configuration
   PYMOL_M               2.2.3           personal

Disabling a Software Package

To disable a specific software package, set its version to "disable" in your ~/.sbgrid.conf file.