> For the complete documentation index, see [llms.txt](https://uaf-rcs.gitbook.io/uaf-rcs-hpc-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uaf-rcs.gitbook.io/uaf-rcs-hpc-docs/third-party-software/using-software-collections-scl.md).

# 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.

## Using an SCL

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.

## Using an SCL in a SLURM Job

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"
```

## More Information

`scl` usage information is available with the "-h" option.

`man scl` displays the man page.

<https://wiki.centos.org/AdditionalResources/Repositories/SCL>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://uaf-rcs.gitbook.io/uaf-rcs-hpc-docs/third-party-software/using-software-collections-scl.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
