SCL简介

SCL项目主页:https://www.softwarecollections.org 

  SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为RHEL/CentOS  Linux用户提供一种方便、安全地安装和使用应用程序和运行时环境的多个版本的方式,同时避免把系统搞乱。

  CentOS/RHEL Linux发行版以稳定性著称,所有的软件都要尽可能stable,导致基础软件的版本非常低,如CentOS 6.7(2015年发布)中gcc版本是4.4.7(2012年版本)。但工程开发中,通常需要高版本的GCC支持,因此需要在CentOS/RHEL Linux开发服务器部署高版本GCC。

   红帽提供的开发工具包来管理gcc版本,这样做的好处是随时切换版本,并且可以并存多个版本,不破坏原有gcc环境。

  红帽官方Developer Toolset文档地址:https://access.redhat.com/documentation/en-us/red_hat_developer_toolset/8/


GCC版本说明

devtoolset对应gcc的版本

devtoolset-3对应gcc4.x.x版本

devtoolset-4对应gcc5.x.x版本

devtoolset-6对应gcc6.x.x版本

devtoolset-7对应gcc7.x.x版本

devtoolset-8对应gcc8.3.1版本


安装devtoolset包

yum install centos-release-scl

yum install devtoolset-7


激活gcc版本使其生效

scl enable devtoolset-7 bash

source /opt/rh/devtoolset-7/enable

此时通过gcc --version命令可以看到,gcc版本已经变成5.3.1,值得注意的是这仅仅在当前bash生效,如果需要永久生效,可以请自行添加环境变量。


安装devtoolset-8操作流程

$ sudo yum install centos-release-scl
$ sudo yum install scl-utils

$ # gcc gdb valgrind systemtap
$ sudo yum install devtoolset-8

$ scl --list
devtoolset-8

$ scl enable devtoolset-8 bash

$ # bashrc
$ # source /opt/rh/devtoolset-8/enable

$ gcc --version
gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3)
Copyright (C) 2018 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.


卸载devtoolset-8操作流程

yum remove devtoolset-8\*

仅仅采用yum remove devtoolset-8并不能真正卸载干净


注意

存在多个devtoolset,可能导致编译的混乱,虽然调用scl enable devtoolset-7 bash,但是cmake最后却是指定了devtoolset-8作为编译器,最后不得已卸载devtoolset-8