在centos中,如何用devtoolset切换到更高版本的gcc后切换到默认的gcc

yif*_*fan 3 gcc centos

我想在centos中安装几个不同版本的gcc。centos 6 中 gcc 的默认版本是 4.9.3。所以我用devtoolset安装了更高版本的gcc。然后我通过执行“source /opt/rh/devtoolset-5/enable”切换到更高版本的gcc。但是现在如果我想切换回默认的gcc,我该怎么做?顺便问一下,有没有办法在centos 5中安装多个不同版本的gcc?

Nas*_*ley 5

gcc分发的版本CentOS 6实际上是 4.4.7。

您可以为许多版本的安装gcc通过安装devtoolset-#通过yum或从源头然后编译。

第一种方法是最简单的。确保您devtoolset通过scl repo. 我认为您已经安装了一个,但如果您没有安装:

yum install centos-release-scl
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下命令将 设置为gcc version您想要的任何一个。在此示例中使用 5 并假设您的 shell 是bash

scl enable devtoolset-5 bash
Run Code Online (Sandbox Code Playgroud)

如果要更改为 6:

scl enable devtoolset-6 bash
Run Code Online (Sandbox Code Playgroud)

如果您想改回默认值,那么假设bash您的 shell 是以下任何一项:

bash

source ~/.bash_profile

第一个将启动一个新的 shell 会话并在~/.bashrc. 第二个将使用~/.bash_profile. (没有启用 devtoolset)。

scl enable devtoolset-5 bash例如,您甚至可以将 放入~/.bashrcor~/.bash_profile以便它在登录gcc时将devtoolset版本设置为版本之一。如果您使用此方法,要返回系统默认值,请在~/.bashrc或 中注释掉该行~/.bash_profile,然后分别运行bashsource ~/.bash_profile。这将启动一个新的 shell 会话,其中包含这些 shell init 文件之一中的所有内容,但scl enable您注释掉的命令除外。唯一的缺点是您通过export命令设置的任何变量将不再存在,因为 shell 会话将是新的。