在鲲鹏云服务器上通过SCL软件集使用高版本GCC

举报
KP001 发表于 2019/12/19 10:27:48 2019/12/19
【摘要】 SCL介绍红帽企业版 linux(RHEL)和它的社区版分支——CentOS,提供10年的生命周期,这意味着 RHEL/CentOS 的每个版本会提供长达10年的安全更新。虽然这么长的生命周期为企业用户提供了迫切需要的系统兼容性和可靠性,但也存在一个缺点:随着底层的 RHEL/CentOS 版本接近生命周期的结束,核心应用和运行时环境变得陈旧过时。另一方面,在 RHEL/CentOS 上试图...
  • SCL介绍


红帽企业版 linux(RHEL)和它的社区版分支——CentOS,提供10年的生命周期,这意味着 RHEL/CentOS 的每个版本会提供长达10年的安全更新。虽然这么长的生命周期为企业用户提供了迫切需要的系统兼容性和可靠性,但也存在一个缺点:随着底层的 RHEL/CentOS 版本接近生命周期的结束,核心应用和运行时环境变得陈旧过时。

另一方面,在 RHEL/CentOS 上试图手动升级开发工具链和运行时环境存在使系统崩溃的潜在可能,除非所有依赖都被正确解决。通常情况下,手动升级都是不推荐的,除非你知道你在干什么。

(SCL)源出现了,以帮助解决 RHEL/CentOS 下的这种问题。SCL 的创建就是为了给 RHEL/CentOS 用户提供一种以方便、安全地安装和使用应用程序和运行时环境的多个(而且可能是更新的)版本的方式,同时避免把系统搞乱。与之相对的是第三方源,它们可能会在已安装的包之间引起冲突。


下面介绍怎么在鲲鹏云服务器上配置SCL源,以及安装和启用SCL中高版本的GCC(本文下述使用鲲鹏云服务器KC1搭载CentOS7.6进行演示)。


  • 安装配置SCL源

yum install centos-release-scl -y
mv /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.bak
sudo yum makecache

遇到输入

Is this ok [y/d/N]:

   时按y。


  • 安装使用高版本的GCC

当前系统上带的GCC版本是4.8.5

gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

通过SCL,我们当前可以使用GCC 7、GCC 8


  • 安装GCC 7

yum install devtoolset-7-gcc -y
  • 安装GCC 8

yum install devtoolset-8-gcc -y
  • 查看安装的SCL工具套件

scl -l

回显:

devtoolset-7
devtoolset-8
  • 启用GCC 7的环境

scl enable devtoolset-7 bash

此时可以查到,当前GCC版本为:

gcc --version
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  • 退出当前环境:

exit
  • 启用GCC 8的环境

scl enable devtoolset-8 bash

此时可以查到,当前GCC版本为:

 gcc --version
gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  • 退出当前环境

exit


通过进入不同的GCC版本环境中,我们就可以使用不同的GCC版本进行编译了。


参考链接:

https://wiki.centos.org/AdditionalResources/Repositories/SCL


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。