How to upgrade your GCC on CentOS 6

$ cat /etc/centos-release
CentOS release 6.7 (Final)

Import CERN’s GPG key:

sudo rpm --import

Save repository information as /etc/yum.repos.d/slc6-devtoolset.repo on your system:

wget -O /etc/yum.repos.d/slc6-devtoolset.repo


sudo yum install devtoolset-2

Enable the environment:

scl enable devtoolset-2 bash

Test the environment:

$ gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

$ g++ --version
g++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

$ gfortran --version
GNU Fortran (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)

Optional: Permanently enable scl toolchain by putting this in your .bashrc (warning: don’t try to use the scl enable devtoolset-2 bash command from before in your .bashrc. This spawns a new bash shell, and if that’s in your .bashrc, it creates a new shell, which loads your .bashrc, which creates a new shell, etc.)

source /opt/rh/devtoolset-2/enable

Installing Linuxbrew

Enable the SCL environment:

scl enable devtoolset-2 bash

Create symlinks to your new gcc/g++/gfortran:

ln -s $(which gcc) `brew --prefix`/bin/gcc-$(gcc -dumpversion |cut -d. -f1,2)
ln -s $(which g++) `brew --prefix`/bin/g++-$(g++ -dumpversion |cut -d. -f1,2)
ln -s $(which gfortran) `brew --prefix`/bin/gfortran-$(gfortran -dumpversion |cut -d. -f1,2)

Install Linuxbrew:

ruby -e "$(curl -fsSL"

Add these to your .bashrc, and source it:

export PATH="$HOME/.linuxbrew/bin:$PATH"
export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"
export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"

Test your installation:

brew install hello
brew test hello
brew remove hello

Source: Here