centos安装多个gcc版本

centos下多个gcc版本的安装方法和切换

安装scl发布源

1
sudo yum install centos-release-scl-rh

安装gcc和gcc-c++

devtoolset中有多个gcc版本

1
2
3
[CaseZheng@Test ~]$ yum search devtoolset- | grep gcc-c++
devtoolset-6-gcc-c++.x86_64 : C++ support for GCC version 6
devtoolset-7-gcc-c++.x86_64 : C++ support for GCC version 7

安装devtoolset-6-*如下

1
sudo yum install devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-gdb devtoolset-6-libstdc++-devel

devtoolset-*中还有别的工具,可以根据需要安装

启用安装的gcc版本

1
2
[CaseZheng@Test ~]$ gcc --version | grep GCC
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)

使用source /opt/rh/devtoolset-6/enable启用, 如果安装的devtoolset-7-*则使用source /opt/rh/devtoolset-7/enable,依次类推

1
2
[CaseZheng@Test ~]$ gcc --version | grep GCC
gcc (GCC) 6.3.1 20170216 (Red Hat 6.3.1-3)

使用这种方法只对当前会话有效,如果想每次新开会话都生效可以将source /opt/rh/devtoolset-6/enable加入到~/.bashrc,加入后source ~/.bashrc生效
如果想全局生效可以将source /opt/rh/devtoolset-6/enable加入到/etc/bashrc,加入后执行下source /etc/bashrc生效

Software Collections介绍

Software Collections 是 Red Hat 唯一支持的新软件包源. Software Collections 为 CentOS 设立了专门的仓库,安装和管理都和其它第三方仓库一样. centos-release-scl 里有一些由社区维护的额外的软件包

安装 Software Collections

1
sudo yum install centos-release-scl centos-release-scl-rh

SCL的默认关闭,启用使用source /opt/rh/devtoolset-7/enable,参考启用安装的gcc版本

参考资料