51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

CentOS8完美升级切换gcc版本方法

在CentOS8、RHEL8系统中,默认gcc版本已经是8.x.x版本,但是在一些编译场景中,还是需要高版本的gcc。

之前吴昊也写过CentOS 7完美升级gcc版本方法:https://blog.whsir.com/post-4975.html,但是之前的文章不适用8.x的版本,吴昊也强调过,不要去编译升级gcc,编译升级后可能会给你带来额外的麻烦。

本文基于CentOS8.3版本验证通过,理论适用于所有RHEL8.x的衍生版本!

在CentOS8版本中,红帽也提供了开发工具包管理gcc版本,install的包名从devtoolset-x变成了gcc-toolset-x,通过该方式升级gcc好处就是随时可以切换gcc版本,不破坏原有gcc环境。

截至2023年12月,gcc-toolset支持gcc9、gcc10、gcc11、gcc12、gcc13版本
gcc-toolset-9对应gcc9.x.x版本 gcc-toolset-10对应gcc10.x.x版本 gcc-toolset-11对应gcc11.x.x版本 gcc-toolset-12对应gcc12.x.x版本 gcc-toolset-13对应gcc13.x.x版本

|-----------|-------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 | gcc-toolset-9对应gcc9.x.x版本 gcc-toolset-10对应gcc10.x.x版本 gcc-toolset-11对应gcc11.x.x版本 gcc-toolset-12对应gcc12.x.x版本 gcc-toolset-13对应gcc13.x.x版本 |

切换gcc至10.x.x版本

配置yum源,非必须,默认的yum源也可,我这里就基于系统的默认源

安装gcc-toolset-10
dnf install gcc-toolset-10

|---|----------------------------| | 1 | dnf install gcc-toolset-10 |

激活gcc版本,使其生效
scl enable gcc-toolset-10 bash

|---|--------------------------------| | 1 | scl enable gcc-toolset-10 bash |


source /opt/rh/gcc-toolset-10/enable

|---|--------------------------------------| | 1 | source /opt/rh/gcc-toolset-10/enable |

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

其它gcc-toolset-12、gcc-toolset-13版本同理,这样的好处是,在当前系统编译环境可能会用到gcc的高版本,并不改变系统原有环境。

网上一些作死的文章还在复制粘贴的告诉你如何编译升级gcc版本,非常不推荐这么去做,这样可能会导致一系列的其它问题出现。

赞(0)
未经允许不得转载:工具盒子 » CentOS8完美升级切换gcc版本方法