Software collections (SCL)

Sofware collections - or SCL - is a collection of ‘add-on’ software packages created and maintained by Red Hat. They were created in order to deliver more up to date versions of software to customers on Red Hat Enterprise Linux which typically does not update software “mid-life” of a product. Via SCL Red Hat is able to provide more recent stable versions of software for customers to use without affecting the stability and security of the base product.

Due to our education licence all SCL software is available to users of our linux desktops. More information about all the available packages can be found on the dedicated software collections website.

How to install SCL packages

SCL packages are normal rpm software packages and thus can be installed via the usual tools, see Installing software for more information. Typically the SCL packages will contain ‘rh’ in the name, but not all do.

How to use SCL packages

Once you have installed an SCL package you must first ‘enable’ its use and run a program with the package enabled. For example:

scl enable rh-python35 bash

This ‘enables’ the rh-python35 package (Python 3.5) and then runs the command bash. The bash command is started with some environment variables changed so that the SCL software is then available, in a similar way to how Environment modules system work.

You can also enable two or more environments at the same time like so:

scl enable sclone scltwo bash

In the above example both sclone and scltwo are enabled.

Using SCL without the scl command

Unlike the environment modules system the binaries of the programs do not have a PREFIX set so they can locate shared libraries (shared/dynamic objects) without setting the LD_LIBRARY_PATH variable. This is set automatically by the scl enable command.

You can however source a script instead of having to use the scl command. Each SCL package is installed into opt:

/opt/rh/<package-name>/

Within that directory there is a script named enable which you can source:

source /opt/rh/<package-name>/enable

For example this is how to source Python 3.5:

source /opt/rh/rh-python35/enable