CentOS 7升级软件
官方源gcc的最高版本是4.8.5,不支持c++14以上的编译。但实际Red Hat 为了软件的稳定和版本支持,红帽编译了新的高版本gcc,未更新到base和epel源里,而是放在scl里[scl软件集(Software Collections),是为了给 RHEL/CentOS 用户提供一种以方便、安全地安装和使用应用程序和运行时多个(而且可能是更新的)版本软件的方式来避免把系统搞乱的新安装方式]。
以gcc安装为例
使用scl升级gcc步骤:
-
安装scl源:(简单)
yum install centos-release-scl scl-utils-build
或者手动配置yum源(麻烦,可以自行试下)
-
查询并列出红帽的centos7的gcc版本
yum list |grep devtoolset |grep gcc.x86_64
也可以用
yum list
直接查询所有已安装和可安装的软件包 -
安装devtoolset
devtoolset-11-gcc* :其中的11为gcc的版本号,为通配符 (后续都以gcc-11来为例),devtoolset-11-gcc最好用3中的实际版本全称
sudo yum install devtoolset-11-gcc*
或
sudo yum install devtoolset-11-gcc.x86_64
-
查看gcc版本
gcc -v
-
切换版本
scl enable devtoolset-11 bash
如下图
再次查询版本就会改变为新安装的版本 gcc-11
-
设置环境
需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要长期使用gcc 11的话:echo "source /opt/rh/devtoolset-11/enable" >>/etc/profile
如下图
或
切换到普通用户:vim ~/.bashrc
在文件中输入:
source /opt/rh/devtoolset-11/enable //(保存退出)cc
source ~/.bashrc //刷新环境变量