Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

For instance, RHEL6 comes with gcc 4.4.7, but also provides 6.3.1 (and later) via Software Collections (SCL).  

ksa@rhel6-64 $ scl enable devtoolset-6 'gcc --version' | head -1
gcc (GCC) 6.3.1 20170216 (Red Hat 6.3.1-3)
ksa@rhel6-64 $ scl enable devtoolset-7 'gcc --version' | head -1
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
ksa@rhel6-64 $ scl enable devtoolset-8 'gcc --version' | head -1
gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3)

Newer .  Newer versions of build-time package are available (eg, gcc, valgrind, make, etc) and run-time packages too (python, ruby, php, git, mariadb, maven, nodejs, perl, java, nginx, mysql, mongodb, postgresql, redis, etc).

...

ksa@rhel6-64l $ rpm -q --requires devtoolset-6
devtoolset-6-perftools 
devtoolset-6-runtime 
devtoolset-6-toolchain  

...

To use the newer versions in a bash script after the RPMs are installed (or see below for another method)

#-----------------------------------------
# to enable newer gcc from software collections:
# (replace devtoolset-6 with current version of devtoolset)
#-----------------------------------------
if [ -x /opt/rh/devtoolset-6/enable ]; then
echo Enabling GCC from Developer Toolset
source /opt/rh/devtoolset-6/enable
fi

 

To use the newer versions on the command line after the RPMs are installed
(this example is from devtoolset-4, but the same idea works for devtoolset-6):

user@host $ scl enable devtoolset-4 bash
bash-4.1$ gcc --version
gcc (GCC) 5.2.1 20150902 (Red Hat 5.2.1-2)
bash-4.1$ exit
ksa@iris02 $ scl enable devtoolset-4 'gcc --version'
gcc (GCC) 5.2.1 20150902 (Red Hat 5.2.1-2)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

How to install Developer Toolset / Software Collections on CentOS 7:

$ sudo yum install centos-release-scl
$ sudo yum install devtoolset-6
$ scl enable devtoolset-6  'gcc --version | head -1'
gcc (GCC) 6.2.1 20160916 (Red Hat 6.2.1-3)

...


How to use the Software Collections version of a runtime program (eg, perl, python) from a script (the alternative process above might be safer since it checks to see if the software collection is installed first)

#!/usr/bin/scl enable rh-perl524 -- perl
print "$^V\n";

...