Using Software Collections (SCL)
Software Collections, also known as SCLs, provide additional versions of system tools to be installed and used alongside the default version. This extends the lifetime and utility of the OS on chinook.
To run an executable from a particular SCL, type the following command at a shell prompt:
$ scl enable software_collection... 'command...'
Or, alternatively, use the following:
$ scl enable software_collection... -- command...
Replace "software_collection" with a space-separated list of SCLs you want to use, and "command" with the command you want to run. For example, to start a session with python version 3.6.X:
$ scl enable rh-python36 -- bash -l
When in an SCL session, the
exit
command will end the session. A second exit
command will have to be executed to end the login session.In order to use an SCL in a batch job, the job script either has to launch using
scl
to load the desired software, or the job script has to execute another script that does so. To launch a bash
script (including a job script) that loads the python 3.6.X SCL, for example, put the following as the first line.#!/usr/bin/scl enable rh-python36 -- /bin/bash
Until the script exits, any python commands or scripts will then be executed using python 3.6.9 instead of the system default.
Alternately, individual commands, or scripts, can be executed using the
scl
command to load desired SCLs just for the duration of that command. For example, put the following in a job script to execute a python script using python 3.6.X instead of the system default version./usr/bin/scl enable rh-python36 ./test.py
If you are passing command line arguments to your script you will need to enclose your script and command in double quotes:
/usr/bin/scl enable rh-python36 "./test.py -n arg1"
scl
usage information is available with the "-h" option.man scl
displays the man page.