TCM
UoC crest

Alternative Software Versions

In many cases TCM has installed several different versions of the same software package. This may be because the newest version is known to be too buggy to be the default, or it may be because retaining older versions so that one can check for any regressions is prudent.

Historically this was achieved by suffixing the application name. This is fairly user-friendly: one simply types the name, hits the tab key twice in quick succession, and a list of alternatives is presented. As a current example:

pc0:~$ vmd
vmd        vmd-1.8.2  vmd-1.8.6  vmd-1.8.7 

It is immediately clear which versions of vmd one can specify.

However, a different technique is used for other applications, that of setting an environment variable to a specific version number. Applications, and corresponding environment variables, are:

Gnuplot:TCM_GNUPLOT_VER
Intel compilers (ifort, icc, icpc):TCM_INTEL_VER
Jmol:TCM_JMOL_VER
LibreOffice (soffice):TCM_OOFFICE_VER
Mathematica:TCM_MATHEMATICA_VER
Matlab:TCM_MATLAB_VER
MPI (compiling and running):MPI

The recommended way of using the alternative versions is by typing

TCM_JMOL_VER=14.0.4 jmol

though in the case of large compilations it would be more reasonable to use something like

export TCM_INTEL_VER=14.0.3
ifort ...

There is no good way of listing all versions available, save that setting the relevant variable to an invalid version often gives clues.

pc0:~$ TCM_MATHEMATICA_VER=henry mathematica
/usr/local/shared/bin/mathematica: line 13:
  /usr/local/shared/Mathematica/henry/Executables/mathematica:
  No such file or directory
pc0:~$ ls /usr/local/shared/Mathematica/*/Executables/mathematica
/usr/local/shared/Mathematica/10.0.0/Executables/mathematica
/usr/local/shared/Mathematica/10.0.1/Executables/mathematica
/usr/local/shared/Mathematica/10.0.2/Executables/mathematica
/usr/local/shared/Mathematica/10.1.0/Executables/mathematica
/usr/local/shared/Mathematica/6.0.2.1/Executables/mathematica
/usr/local/shared/Mathematica/6.0.2/Executables/mathematica
/usr/local/shared/Mathematica/6.0.3/Executables/mathematica
/usr/local/shared/Mathematica/7.0.1/Executables/mathematica
/usr/local/shared/Mathematica/7.0/Executables/mathematica
/usr/local/shared/Mathematica/8.0.0/Executables/mathematica
/usr/local/shared/Mathematica/8.0.1/Executables/mathematica
/usr/local/shared/Mathematica/9.0.0/Executables/mathematica
/usr/local/shared/Mathematica/9.0.1/Executables/mathematica
/usr/local/shared/Mathematica/current/Executables/mathematica

In some cases there is no obvious "front door" to older versions, but this does not mean that they do not exist if the package is installed in /usr/local/shared.

pc0:~$ type evince
evince is /usr/bin/evince

Out of luck -- not a central TCM install.

pc0:~$ type bmp2eps
bmp2eps is /usr/local/shared/bin/bmp2eps
pc0:~$ ls -l /usr/local/shared/bin/bmp2eps
lrwxrwxrwx 1 mjr 266 26 Aug 18  2010 /usr/local/shared/bin/bmp2eps -> ../bmp2eps/current/bmp2eps
pc0:~$ ls -l /usr/local/shared/bmp2eps
total 0
drwxr-xr-x 2 mjr 266 32 Aug 18  2010 0.99a
drwxr-xr-x 2 mjr 266 28 Aug 18  2010 0.99c
drwxr-xr-x 2 mjr 266 48 Aug 18  2010 1.00
drwxr-xr-x 2 mjr 266 48 Dec  7  2011 1.01
drwxr-xr-x 2 mjr 266 48 Jul 14  2012 1.10
drwxr-xr-x 2 mjr 266 48 Aug 27  2012 1.16
drwxr-xr-x 2 mjr 266 48 Feb 24  2013 1.17
drwxr-xr-x 2 mjr 266 48 Mar  6  2013 1.18
drwxr-xr-x 2 mjr 266 48 Apr  9  2013 1.19
drwxr-xr-x 2 mjr 266 48 Nov 10  2013 1.20
drwxr-xr-x 2 mjr 266 48 Mar  6  2014 1.20a
lrwxrwxrwx 1 mjr 266  5 Mar  6  2014 current -> 1.20a

Pretty obvious where earlier versions can be found.

pc0:~$ type soffice
soffice is /usr/local/shared/bin/soffice
pc0:~$ ls -l /usr/local/shared/bin/soffice
-rwxr-xr-x 1 mjr 266 74 Dec 31  2013 /usr/local/shared/bin/soffice
m1:~$ less /usr/local/shared/bin/soffice
#!/bin/bash

exec /usr/local/shared/openoffice/current/soffice ${1+"$@"} 
pc0:~$ ls /usr/local/shared/openoffice
INSTALL.TCM  lo3.6    lo4.0.3  lo4.1.3        lo4.2.1        lo4.3.1  lo4.4.1
current      lo3.6.4  lo4.0.4  lo4.1.4        lo4.2.1_32bit  lo4.3.3  lo4.4.2
current32    lo4.0    lo4.1.1  lo4.1.4_32bit  lo4.2.4        lo4.3.5  oo3.3

Ditto