Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本

Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本

  • 一、Red Hat Developer Toolset 概述
  • 二、使用Red Hat Software Collections
    • 2.1 获取pool ID
    • 2.2 将pool ID 附加到本地系统中
    • 2.3 获取仓库列表
    • 2.4 使能上述仓库
  • 三、安装 Red Hat Developer Toolset
  • 四、升级Red Hat Developer Toolset
  • 五、切换gcc或者g++版本

一、Red Hat Developer Toolset 概述

本文环境是RHEL 7.6, 演示了如何在7.6的版本上安装Red Hat Developer Toolset。

在Redhat中,提供了专门的工具包来管理gcc版本,通过使用工具包的方式,就可以随时切换gcc版本,而不破坏原有的gcc环境。例如:

gcc-toolset-12对应gcc12.x.x版本
gcc-toolset-11对应gcc11.x.x版本
gcc-toolset-10对应gcc10.x.x版本
gcc-toolset-9对应gcc9.x.x版本
以此类推

关于Red Hat Developer Toolset的说明:

Red Hat Developer Toolset delivers the latest stable versions of essential GCC C, C++, Fortran, and supporting development tools to enhance developer productivity and improve deployment times.

Red Hat Developer Toolset是作为Red Hat Software Collections的一部分提供的。

想要使用Red Hat Developer Toolset,还必须通过Redhat的订阅管理系统。如何通过Red Hat Subscription Management注册你的系统,可以参考下面这个guide。

Red Hat Subscription Management

关于如何注册成为Redhat的开发者,参考我的另一篇博文, 里面有一节对此有介绍:
Redhat rpm常用命令以及如何配置yum软件仓库使用yum install

二、使用Red Hat Software Collections

2.1 获取pool ID

执行以下命令,以获取你的订阅系统所拥有的pool ID

[root@192 rh]# subscription-manager list --available

Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本_第1张图片

2.2 将pool ID 附加到本地系统中

将上一步获取的pool ID,通过以下命令附加到本地系统

subscription-manager attach --pool=xxxxx

Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本_第2张图片

可以随时通过以下命令查看你本地已经附加成功的订阅清单:

subscription-manager list --consumed

2.3 获取仓库列表

通过以下命令获取可用的yum仓库列表:

[root@192 ~]# subscription-manager repos --list

Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本_第3张图片

这个命令会列出/etc/yum.repos.d/redhat.repo中全部的Available Repositories,有一大堆, 不过我们不用理会,只需要关心如下固定格式的即可:

rhel-variant-rhscl-version-rpms
rhel-variant-rhscl-version-debug-rpms
rhel-variant-rhscl-version-source-rpms

rhel-version-variant-optional-rpms
rhel-version-variant-optional-debug-rpms
rhel-version-variant-optional-source-rpms

由于我的系统是RHEL7.6, 所以将version替换成(7),将variant替换成(server or workstation), 我这里是server,替换好后变成:

rhel-server-rhscl-7-rpms
rhel-server-rhscl-7-debug-rpms
rhel-server-rhscl-7-source-rpms

rhel-7-server-optional-rpms
rhel-7-server-optional-debug-rpms
rhel-7-server-optional-source-rpms

这几条记录在刚刚输出的一堆结果中都是唯一存在的。

2.4 使能上述仓库

通过下述命令将上述步骤中的repository仓库逐一使能。

subscription-manager repos --enable repository

其中的repository分别替换成上面那6个结果。也就是:

subscription-manager repos --enable rhel-server-rhscl-7-rpms
subscription-manager repos --enable rhel-server-rhscl-7-debug-rpms
subscription-manager repos --enable rhel-server-rhscl-7-source-rpms

subscription-manager repos --enable rhel-7-server-optional-rpms
subscription-manager repos --enable rhel-7-server-optional-debug-rpms
subscription-manager repos --enable rhel-7-server-optional-source-rpms

Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本_第4张图片

至此,准备工作结束。

三、安装 Red Hat Developer Toolset

通过以下命令可以一次性安装全部的devtoolset-12 package:

yum install devtoolset-12

当然了,你也可以安装指定的package,比如:

yum install devtoolset-12-toolchain

这里我们安装完整的devtoolset-12,完成安装后/opt/rh/目录下会有对应的devtoolset-12目录

Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本_第5张图片

四、升级Red Hat Developer Toolset

使用以下命令进行升级:

yum update

五、切换gcc或者g++版本

可以按照下述格式指定gcc版本进行编译,这里指定的是devtoolset-12,对应gcc12版本:

scl enable devtoolset-12 'gcc -o output_file source_file...'

也可以直接执行以下命令,将当前的shell session设置为指定的devtoolset-12版本,那么当前会话中就可以一直使用该版本。

scl enable devtoolset-12 'bash'

Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本_第6张图片

对于g++,也是同理

Redhat7上安装Red Hat Developer Toolset并自由切换gcc和g++的版本_第7张图片

如果想长期使用高版本gcc的话,可以将其写入环境变量

echo "source /opt/rh/devtoolset-12/enable" >>/etc/profile
source /etc/profile

你可能感兴趣的:(Linux,C++,运维,linux,服务器,开发语言,c++)