🌐
GitHub
github.com › sclorg › scl-utils
GitHub - sclorg/scl-utils: Tool to setup and run software from Software Collection environment · GitHub
Tool to setup and run software from Software Collection environment - sclorg/scl-utils
Starred by 15 users
Forked by 23 users
Languages   C 79.8% | Shell 15.2% | CMake 5.0%
🌐
GitHub
github.com › sclorg › scl-utils-build-helpers
GitHub - sclorg/scl-utils-build-helpers · GitHub
Contribute to sclorg/scl-utils-build-helpers development by creating an account on GitHub.
Author   sclorg
🌐
GitHub
github.com › sclorg › scl-utils › releases
Releases · sclorg/scl-utils
sclorg / scl-utils Public · ... Releases · sclorg/scl-utils · You can create a release to package software, along with release notes and links to binary files, for other people to use....
Author   sclorg
🌐
UW PCE
uwpce-pythoncert.github.io › PythonCertDevel › supplemental › installing › python_for_linux.html
Setting Up Linux for Python — PythonCert 5.0 documentation
$ sudo yum -y install scl-utils · Then go to the software collections listing and click on the Python collection version you want to install. Probably this one: https://www.softwarecollections.org/en/scls/rhscl/rh-python35/ Note, you also need to know which version of CentOS you are using ...
🌐
GitHub
github.com › sclorg › scl-utils › blob › master › src › scllib.h
scl-utils/src/scllib.h at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - sclorg/scl-utils
Author   sclorg
🌐
GitHub
github.com › sclorg › scl-utils › tree › master › shell
scl-utils/shell at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - scl-utils/shell at master · sclorg/scl-utils
Author   sclorg
🌐
GitHub
github.com › beakerlib › scl-utils
GitHub - beakerlib/scl-utils
Contribute to beakerlib/scl-utils development by creating an account on GitHub.
Author   beakerlib
🌐
GitHub
github.com › sclorg › scl-utils › blob › master › shell › scl-init.csh
scl-utils/shell/scl-init.csh at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - scl-utils/shell/scl-init.csh at master · sclorg/scl-utils
Author   sclorg
🌐
GitHub
github.com › sclorg › scl-utils › blob › master › shell › scl_enabled
scl-utils/shell/scl_enabled at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - scl-utils/shell/scl_enabled at master · sclorg/scl-utils
Author   sclorg
🌐
GitHub
github.com › sclorg › scl-utils › blob › master › src › scl.c
scl-utils/src/scl.c at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - scl-utils/src/scl.c at master · sclorg/scl-utils
Author   sclorg
Find elsewhere
🌐
GitHub
github.com › sclorg › scl-utils › blob › master › doc › scl.1
scl-utils/doc/scl.1 at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - scl-utils/doc/scl.1 at master · sclorg/scl-utils
Author   sclorg
🌐
GitHub
github.com › sclorg › scl-utils › blob › master › shell › scl-completion.bash
scl-utils/shell/scl-completion.bash at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - scl-utils/shell/scl-completion.bash at master · sclorg/scl-utils
Author   sclorg
🌐
GitHub
github.com › sclorg › scl-utils › pulls
Pull requests · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - Pull requests · sclorg/scl-utils
Author   sclorg
🌐
GitHub
github.com › sclorg › scl-utils › blob › master › LICENSE
scl-utils/LICENSE at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - scl-utils/LICENSE at master · sclorg/scl-utils
Author   sclorg
🌐
GitHub
github.com › sclorg › scl-utils › blob › master › CMakeLists.txt
scl-utils/CMakeLists.txt at master · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - scl-utils/CMakeLists.txt at master · sclorg/scl-utils
Author   sclorg
🌐
Soton
linuxdesktops.soton.ac.uk › softwarecollections.html
Software collections (SCL) — Linux Desktops RHEL7 documentation
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.
🌐
GitHub
github.com › sclorg › scl-utils › issues
Issues · sclorg/scl-utils
Tool to setup and run software from Software Collection environment - sclorg/scl-utils
Author   sclorg
Top answer
1 of 5
93

In your ~/.bashrc or ~/.bash_profile Simply source the "enable" script provided with the devtoolset. For example, with the Devtoolset 2, the command is:

source /opt/rh/devtoolset-2/enable

or

source scl_source enable devtoolset-2

Lot more efficient: no forkbomb, no tricky shell

2 of 5
17

An alternative of source /opt/rh/devtoolset-4/enable is

source scl_source enable devtoolset-4

The above shell script scl_source is more elegant than using a hard coded path (may be different on another machine). However scl_source does less because /opt/rh/devtoolset-4/enable uses scl_source and other stuff.

To use scl_source you may have to upgrade package scl-utils

yum update scl-utils  # old scl-utils versions miss scl_source

Quick copy-paste

echo 'source scl_source enable devtoolset-4' >> ~/.bashrc
    # Do not forget to change the version ↑

Source code for curious people

An example of scl_source source code:
https://gist.github.com/bkabrda/6435016

The scl_source installed on my Red Hat 7.1

#!/bin/bash

_scl_source_help="Usage: source scl_source <action> [<collection> ...]

Don't use this script outside of SCL scriptlets!

Options:
    -h, --help    display this help and exit"

if [ $# -eq 0 -o $1 = "-h" -o $1 = "--help" ]; then
    echo "$_scl_source_help"
    return 0
fi


if [ -z "$_recursion" ]; then
    _recursion="false"
fi
if [ -z "$_scl_scriptlet_name" ]; then
    # The only allowed action in the case of recursion is the same
    # as was the original
    _scl_scriptlet_name=$1
fi
shift 1

if [ -z "$_scl_dir" ]; then
    # No need to re-define the directory twice
    _scl_dir=/etc/scl/conf
    if [ ! -e $_scl_dir ]; then
        _scl_dir=/etc/scl/prefixes
    fi
fi

for arg in "$@"; do
    _scl_prefix_file=$_scl_dir/$arg
    _scl_prefix=`cat $_scl_prefix_file 2> /dev/null`
    if [ $? -ne 0 ]; then
        echo "Can't read $_scl_prefix_file, $arg is probably not installed."
        return 1
    fi

    # First check if the collection is already in the list
    # of collections to be enabled
    for scl in ${_scls[@]}; do
        if [ $arg == $scl ]; then
            continue 2
        fi
    done

    # Now check if the collection isn't already enabled
    /usr/bin/scl_enabled $arg > /dev/null 2> /dev/null
    if [ $? -ne 0 ]; then
        _scls+=($arg)
        _scl_prefixes+=($_scl_prefix)
    fi;
done

if [ $_recursion == "false" ]; then
    _i=0
    _recursion="true"
    while [ $_i -lt ${#_scls[@]} ]; do
        _scl_scriptlet_path="${_scl_prefixes[$_i]}/${_scls[$_i]}/${_scl_scriptlet_name}"
        source "$_scl_scriptlet_path"
        if [ $? -ne 0 ]; then
            echo "Can't source $_scl_scriptlet_name, skipping."
        else
            export X_SCLS="${_scls[$_i]} $X_SCLS"
        fi;
        _i=$(($_i+1))
    done
    _scls=()
    _scl_prefixes=()
    _scl_scriptlet_name=""
    _recursion="false"
fi
🌐
Red Hat
docs.redhat.com › en › documentation › red_hat_enterprise_linux › 6 › html › 6.5_technical_notes › scl-utils
8.195. scl-utils | 6.5 Technical Notes | Red Hat Enterprise Linux | 6 | Red Hat Documentation
The scl-utils packages provide a runtime utility and RPM packaging macros for packaging Software Collections. Software Collections allow users to concurrently install multiple versions of the same RPM packages on the system.