原因:使用源码安装指定版本会有很多问题,尤其是降级而且手动编译gcc往往耗时长,而且不一定能成功,使用devtoolset 可以快速切换gcc版本。

采用CentOS的一个第三方库SCL(软件选集)的 devtoolset ,SCL可以在不覆盖原系统软件包的情况下安装新的软件包与老软件包共存并且可以使用scl命令切换,不过也有个缺点就是只支持64位的。

可以先卸载yum安装的gcc

yum -q gcc

 rpm -e gcc-8.5.0-4.el8_5.x86_64

 

提示有依赖,先删除依赖的文件

rpm -e gcc-c++-8.5.0-4.el8_5.x86_64
再执行

 rpm -e gcc-8.5.0-4.el8_5.x86_64

 

 成功。

1、查看当前系统中gcc版本

我的是当前最新版本,12.1.0 

2、降级版本

## 安装第三方SCL源仓库

yum -y install centos-release-scl

可能会出现以下错误

解决办法:

执行以此执行以下命令

rpm -ivh https://cbs.centos.org/kojifiles/packages/centos-release-scl-rh/2/3.el7.centos/noarch/centos-release-scl-rh-2-3.el7.centos.noarch.rpm
Retrieving https://cbs.centos.org/kojifiles/packages/centos-release-scl-rh/2/3.el7.centos/noarch/centos-release-scl-rh-2-3.el7.centos.noarch.rpm

 

 再执行yum -y install centos-release-scl 就成功了

## 安装gcc 8.3.1 的版本

yum -y install devtoolset-8-gcc*
或
yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils

如果安装版本9的就改为

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

如果7就是

yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils

其他版本同理。

## 激活gcc 8.3.1

scl enable devtoolset-8 bash

如果未版本7输入以下命令

scl enable devtoolset-7 bash

## 验证

gcc  -v

 但是具体安装某版本我就不知道了,比如安装8.11.1,当然是用源码包安装还是可以的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐