前言
在之前的文章,使用CentOS 7 安装新版本GCC需要手动去下载依赖和源码包进行编译,这种方式费时费力,且容易出错。当然这种方式适合离线环境去升级。
能连接到互联网的机器,几行命令搞定肯定是最好的,下面使用GCC Toolset来实现动态的切换GCC版本。
Rocky Linux 8 基于Red Hat Enterprise Linux(RHEL)8 而来,基本上和Redhat系统的包能够通用。
Red Hat Enterprise Linux(RHEL)8 引入了 GCC Toolset,它提供了一系列最新的开发工具和性能分析工具,这与 RHEL 7 中提供的 Developer Toolset 有相似之处。GCC Toolset 通过 AppStream 软件库以应用流的形式提供,作为一个软件集合。这种方式确保了 GCC Toolset 提供的应用程序和库不会替换系统中的默认版本,也不会自动覆盖它们或成为默认的首选项。这种设计允许用户在不干扰系统稳定性的前提下,使用最新的开发工具。
使用dnf搜索可升级的gcc-toolset
sudo dnf search gcc-toolset
可以看到当前可以升级GCC9、10、11、12、13
[root@iZ2vc4t5ukvrx3pr7shznwZ ~]# dnf search gcc-toolset Last metadata expiration check: 1:18:20 ago on Wed 10 Jul 2024 02:33:59 PM CST. =============================== Name & Summary Matched: gcc-toolset ================================ gcc-toolset-10.x86_64 : Package that installs gcc-toolset-10 gcc-toolset-10-runtime.x86_64 : Package that handles gcc-toolset-10 Software Collection. gcc-toolset-11.x86_64 : Package that installs gcc-toolset-11 gcc-toolset-11-runtime.x86_64 : Package that handles gcc-toolset-11 Software Collection. gcc-toolset-12.x86_64 : Package that installs gcc-toolset-12 gcc-toolset-12-runtime.x86_64 : Package that handles gcc-toolset-12 Software Collection. gcc-toolset-13.x86_64 : Package that installs gcc-toolset-13 gcc-toolset-13-runtime.x86_64 : Package that handles gcc-toolset-13 Software Collection. gcc-toolset-9.x86_64 : Package that installs gcc-toolset-9 gcc-toolset-9-runtime.x86_64 : Package that handles gcc-toolset-9 Software Collection.
安装gcc-toolset-13
sudo dnf install gcc-toolset-13-gcc*
安装scl实现GCC多版本切换
dnf install scl-utils
切换到gcc13
scl enable gcc-toolset-13 bash
查看GCC版本号
gcc --version
[root@iZ2vc4t5ukvrx3pr7shznwZ ~]# scl enable gcc-toolset-13 bash [root@iZ2vc4t5ukvrx3pr7shznwZ ~]# gcc --version gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6) Copyright (C) 2023 Free Software Foundation, Inc.
注意,这里的切换到GCC13只是临时切换,此时输入exit则会恢复到系统默认的GCC8.5
如果要让当前用户登录即自动默认使用gcc13则需要将该命令写入到环境变量里
echo "source /opt/rh/rh-gcc-toolset13/enable" >> ~/.bashrc
source ~/.bashrc