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