How do I use Linux software collections (scl)?

Before you begin

It is expected that you are familiar with basic linux command line use, and command line use of your tools. If you do not have this skill, please have a member of the IT linux team, or non-HPC research computing support team with with you on this.


Often times, researchers need software or tools with do not integrate well with our linux lab’s environment because their needs have software versions which conflict with what is already there. A tool called "scl," which is often referred to as "software collections," alleviates many issues with this.

What ‘scl’ does

It creates a number of alternative binary paths and aliases to make an otherwise conflicting set of tools work transparently as if they were the default ones on the system, or even available at all on the system.

How to use scl

scl is a command line tool only. When in the terminal, there are two things you will want to use scl for. The first is to look at what software collections are available. A software collection is a set of alternative paths and program aliases which can to used. Multiple collections may be used at the same time.

To list available collections, use:

$ scl -l

To use a software collection, use:

$ scl enable <list of collection names> "<your program name>"

We suggest you use your preferred shell as the program you run, because it best simplifies usage of software collections transparently. We expect most people will want to use ‘$ scl enable devtoolset-6 bash’ for their work. To modify your environment to always use a scl environment, add ‘source scl_source enable devtoolset-6’ to your ~/.bashrc . You can read further about scl at


Direct link to article