自学内容网 自学内容网

CentOS 升级 gcc 版本

CentOS 升级 gcc 版本

1. 安装步骤

CentOS7 默认的 gcc 版本是4.8,有时候需要更高版本,这里介绍一下如何将 gcc 版本升级到 8.3.1

  1. 安装 centos-release-scl

    yum install centos-release-scl
    
  2. 安装devtoolset,注意,如果想安装 9.* 版本的,就改成 devtoolset-9-gcc,以此类推

    yum install devtoolset-8-gcc*
    
  3. 激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本

    scl enable devtoolset-8 bash
    
  4. 查看 gcc 版本

    gcc -v
    

2. FAQ

2.1 在执行yum install devtoolset-8-gcc*的时候报错,说找不到对应的包

解决方案:

安装完成后在 /etc/yum.repos.d 目录下会出现 CentOS-SCLo-scl.repo 和 CentOS-SCLo-scl-rh.repo 两个文件,安装后源默认启用,问题就在这两个文件上。

  1. 修改CentOS-SCLo-scl.repo文件

    vim /etc/yum.repos.d/CentOS-SCLo-scl.repo
    
  2. 修改此部分的 baseurl

    [centos-sclo-sclo]
    name=CentOS-7 - SCLo sclo
    baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/sclo/
    # mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
    gpgcheck=0
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
    
  3. 修改CentOS-SCLo-scl.repo

    vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
    
  4. 修改此部分的 baseurl

    [centos-sclo-rh]
    name=CentOS-7 - SCLo rh
    baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
    # mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
    gpgcheck=0
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo
    
  5. 刷新缓存

    yum repolist
    yum clean all
    yum makecache
    

2.2 安装成功后重启再次执行gcc -v发现还是旧的版本

这条scl enable devtoolset-8 bash激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本,要想随意切换可按如下操作。

首先,安装的devtoolset是在 /opt/rh 目录下的

在这里插入图片描述

每个版本的目录下面都有个 enable 文件,如果需要启用某个版本,只需要执行:

source ./enable

所以想要切换某个版本只需要执行:

source /opt/rh/devtoolset-8/enable

解决方案:

  1. 方案一:可以将对应版本的切换命令写个shell文件放在配了环境变量的目录下,需要时随时切换,或者开机自启

  2. 方案二:直接替换旧的gcc

    旧的gcc是运行的 /usr/bin/gcc,所以将该目录下的gcc/g++替换为刚安装的新版本gcc软连接,免得每次enable

    mv /usr/bin/gcc /usr/bin/gcc-4.8.5
    
    ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
    
    mv /usr/bin/g++ /usr/bin/g++-4.8.5
    
    ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
    
    gcc --version
    
    g++ --version
    

原文地址:https://blog.csdn.net/weixin_66400215/article/details/143813252

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!