一、SCL简介

1、SCL简介

SCL(Software Collections)是一个CentOS/RHEL Linux平台的软件多版本共存解决方案,为RHEL/CentOS  Linux用户提供一种方便、安全地安装和使用应用程序和运行时环境的多个版本的方式,同时避免把系统搞乱。

CentOS/RHEL Linux发行版以稳定性著称,所有的软件都要尽可能stable,导致基础软件的版本非常低,如CentOS 6.7(2015年发布)中gcc版本是4.4.7(2012年版本)。但工程开发中,通常需要高版本的GCC支持,因此需要在CentOS/RHEL Linux开发服务器部署高版本GCC。

SCL项目主页:https://www.softwarecollections.org

2、CentOS源支持

下载源仓库文件Centos-7.repo至/etc/yum.repos.d:

http://mirrors.aliyun.com/repo/Centos-7.repo

将CentOS-7.repo文件中的$releasever全部替换为版本号7

更新仓库:


  1. yum clean all
  2. yum makecache
  3. sudo yum update

3、SCL源安装

yum install centos-release-scl scl-utils-build

CentOS6/7安装SCL源

yum-config-manager --enable rhel-server-rhscl-6-rpms

RHEL6安装SCL源

yum-config-manager --enable rhel-server-rhscl-7-rpms

RHEL7安装SCL源

4、SCL软件集查看

yum list all --enablerepo='centos-sclo-rh'

查询SCL支持的软件集合

SCL软件集包含软件包数量众多,可以选择安装指定RPM包,也可以全部安装。

二、SCL使用

1、查看已安装SCL软件集

scl --list

查询已安装SCL软件集

scl --list SCL_NAME

查询指定SCL软件集已安装的RPM包

2、SCL软件集安装

yum install SCL_NAME

安装指定SCL软件集

yum install devtoolset-7-gcc.x86_64  devtoolset-7-gcc-c++.x86_64 devtoolset-7-gcc-gdb-plugin.x86_64

安装SCL软件集的指定RPM包。

yum list SCL_NAME\*

查询指定软件集中的RPM包

3、卸载指定SCL软件集

yum remove SCL_NAME\*

卸载指定SCL软件集

4、执行应用程序

scl enable SCL_NAME_1 SCL_NAME_2 command

激活SCL软件集,直接执行不带参数命令


  1. scl enable SCL_NAME_1 SCL_NAME_2 'command --argument'
  2. scl enable SCL_NAME_1 SCL_NAME_2 "command --argument"
  3. scl enable SCL_NAME_1 SCL_NAME_2 -- command --argument

激活SCL软件集,执行带参数命令


  1. scl enable devtoolset-7 "gcc --version"
  2. scl enable devtoolset-7 -- gcc --version

激活devtoolset-7软件集,查看gcc版本

5、创建SCL软件集Shell环境

scl enable SCL_NAME_1 SCL_NAME_2 bash

在当前shell环境下新建一个shell并激活一个或多个SCL

echo $X_SCLS

在SCL shell环境查看已激活的SCL

exit

退出SCL软件集Shell环境

scl enable devtoolset-7 bash

创建devtoolset-7软件集的bash环境

6、批量执行文件中命令

cat cmd_file | scl enable SCL_NAME_1 SCL_NAME_2 -

执行文件中命令

7、激活SCL软件集

source /opt/rh/SCL_NAME/enable

在当前Shell激活指定SCL软件集

三、SCL常用软件集

1、Developer Toolset

Developer Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供GCC工具集、GNU Debugger以及其它开发、调试、性能测试工具的不同版本。

Developer Toolset 3、Developer Toolset 4、Developer Toolset 6已经废弃。

Developer Toolset 7对应GCC 7版本

yum install devtoolset-7

Developer Toolset 8对应GCC 8版本

yum install devtoolset-8

CentOS7/RHEL7系统中Developer Toolset 7的Docker容器支持如下:


  1. docker pull
  2. registry.access.redhat.com/rhscl/devtoolset-7-perftools-rhel7
  3. docker pull
  4. registry.access.redhat.com/rhscl/devtoolset-7-toolchain-rhel7
  5. docker pull centos/devtoolset-7-perftools-centos7
  6. docker pull centos/devtoolset-7-toolchain-centos7

2、Clang and LLVM Toolset

Clang and LLVM Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供LLVM编译器基础设施、C/C++语言Clang编译器、LLDB调试器、代码分析相关工具。

yum install llvm-toolset-7.0

安装Clang and LLVM Toolset

scl enable llvm-toolset-7.0 bash

激活Clang and LLVM Toolset并创建Shell


  1. docker pull
  2. registry.access.redhat.com/devtools/llvm-toolset-7.0-rhel7

RHEL7中Clang and LLVM Toolset的Docker镜像下载

3、Go Toolset

Go Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供Golang编程语言库和工具。

yum install go-toolset-7

安装Go Toolset

scl enable go-toolset-7 bash

激活Go Toolset并创建Shell环境


  1. docker pull
  2. registry.access.redhat.com/devtools/go-toolset-7-rhel7

RHEL7中Go Toolset的Docker镜像下载

4、Python软件集

SCL中,Python软件集包括Python27、Python33、Python34、Python35、Python36五个版本,相应的SCL软件集名称为python27、python33、rh-python34、rh-python35、rh-python36。

rh-python36包含Python3.6解释器、Web编程扩展库、mod_wsgi、PostgreSQL数据库接口库、numpy、scipy。

yum install rh-python36

安装rh-python36

scl enable rh-python36 bash

激活rh-python36并创建Shell环境

5、Redis软件集

Redis软件集有Redis3.2和Redis5.0两个版本,SCL名称分别为rh-redis32和rh-redis5。

yum install rh-redis5

安装rh-redis5

scl enable rh-redis5 bash

激活rh-redis5并创建Shell环境

service rh-redis5-redis start

启动rh-redis5服务

6、MySQL

MySQL软件集有MySQL5.5、MySQL5.6、MySQL5.7、MySQL8.0四个版本,SCL名称分别为rh-mysql55、rh-mysql56、rh-mysql57、rh-mysql80。

yum install rh-mysql80

安装rh-mysql80

scl enable rh-mysql80 bash

激活rh-mysql80并创建Shell环境

systemctl start rh-mysql80-mysqld

启动MySQL数据库服务

四、多版本GCC部署

1、GCC 7.3部署

yum install devtoolset-7

安装Developer ToolSet 7软件集

scl enable devtoolset-7 bash

激活Developer Toolset 7软件集,并创建Shell

2、GCC 8.3部署

yum install devtoolset-8

安装Developer Toolset 8软件集

scl enable devtoolset-8 bash

激活Developer Toolset 8软件集,并创建Shell环境

五、多版本Python部署

1、Python2.7部署

sudo yum install python27

安装SCL Python3软件包

scl enable python27 bash

开启Python2.7 Shell会话环境

python --version

Python版本查看

2、Python3.6部署

sudo yum install rh-python36

安装SCL Python3软件包

scl enable rh-python36 bash

开启Python3 Shell会话环境

python --version

Python版本查看

文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树首页概览11682 人正在系统学习中
量化IT技术交流群


QQ群名片

[转帖]Linux开发环境——SCL软件集的更多相关文章

  1. Linux开发环境的搭建和使用——Linux本必备软件SSH

    SSH 至 Secure Shell 缩写.由 IETF 网络工作组(Network Working Group)开发:SSH 以建立应用层和传输层安全协议中的基础上. SSH 是眼下较可靠,专为远程 ...

  2. 用Windows+VirtualBox搭建嵌入式Linux开发环境

    Windows+VirtualBox的嵌入式Linux开发环境的搭建 最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用 ...

  3. 熟悉linux开发环境(实验)

    北京电子科技学院(BESTI) 实验报告 课程: 深入理解计算机系统 班级: 1353班 姓名:张若嘉 杨舒雯 学号:20135330 20135324 成绩: 指导教师:娄嘉鹏 实验日期:2015. ...

  4. 一步步学习Linux开发环境搭建与使用

    00.Linux开发环境搭建与使用1--Linux简史 01.Linux开发环境搭建与使用2--Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3--通过虚拟机安装系统(ub ...

  5. 利用 WSL 在 Windows下打造高效的 Linux 开发环境

    WSL-Windows Subsystem for Linux 介绍 The Windows Subsystem for Linux lets developers run Linux environ ...

  6. Centos7升级gcc版本方法之一使用scl软件集

    Centos7 gcc版本默认4.8.3,Red Hat 为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl. scl软件集(Software Co ...

  7. 如何在微软Windows平台上打造出你的Linux开发环境(转载)

    如何在微软Windows平台上打造出你的Linux开发环境 投递人 itwriter 发布于 2013-12-10 11:18 评论(1) 有348人阅读  原文链接  [收藏]  « » 英文原文: ...

  8. Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux开发环境[2.2]

    Setting up a EDK II build environment on Windows and Linux:搭建Windows和Linux开发环境[2.2] 2015-07   北京海淀区  ...

  9. Linux开发环境搭建与使用系列教程

    00.Linux开发环境搭建与使用1——Linux简史 01.Linux开发环境搭建与使用2——Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3——通过虚拟机安装系统(ub ...

  10. 基于AM3352/AM3354/AM3358/AM3359的Linux 开发环境搭建(上)

    遇到不少人新手小白问,前辈如何搭建一个优良的Linux 开发环境?之前一直都是在用win开发,现在想要尝试用Linux做开发等等一系列的问题.开源一直是给电子行业工作者提供了一种向技术更深处进发的机遇 ...

随机推荐

  1. MySQL进阶篇:详解存储引擎特点

    MySQL进阶篇:第一章_一.四_存储引擎特点_Memory & MySQL存储引擎的区别及特点 1.1 存储引擎特点 1.1.3 Memory 1). 介绍 Memory引擎的表数据时存储在 ...

  2. 了解库开发,我们从STM32标准库开发学起

    摘要:从STM32新建工程.编译下载程序出发,让新手由浅入深,尽享STM32标准库开发的乐趣. 自从CubeMX等图像配置软件的出现,同学们往往点几下鼠标就解决了单片机的配置问题.对于追求开发速度的业 ...

  3. 你的Parquet该升级了:IOException: totalValueCount == 0问题定位之旅

    摘要:使用Spark SQL进行ETL任务,在读取某张表的时候报错:"IOException: totalValueCount == 0",但该表在写入时,并没有什么异常. 本文分 ...

  4. 云图说丨带你了解GaussDB(for Redis)双活解决方案

    摘要:GaussDB(for Redis)推出了双活解决方案,基于GaussDB NoSQL统一架构,通过两个数据库实例之间的数据同步,达成数据的一致性. 本文分享自华为云社区<[云图说]一张图 ...

  5. vue2升级vue3: h、createVNode、render、createApp使用

    h.createVNode 杂乱笔记,凑合着看,不喜勿喷! h 函数是什么 h 函数本质就是 createElement() 的简写,作用是根据配置创建对应的虚拟节点,在vue 中占有极其重要的地位! ...

  6. hadoop清空回收站时间设置

    在hadoop执行删除文件命令 如果不带 -skipTrash 文件是进入了回收站 空间并不会被释放 会隔一段时间才被删除 设置该时间位置为: core-site.xml fs.trash.inter ...

  7. Jenkins Pipeline 流水线 - 上传文件 Publish over SSH 执行命令

    Jenkins Pipeline 流水线 - 上传文件 Publish over SSH 执行命令 Jenkins插件安装 Publish over SSH 系统配置 生成代码 sshPublishe ...

  8. vivo 商城前端架构升级—前后端分离篇

    本文主要以 vivo 商城项目的前后端分离经验,总结前后端分离思路,整理前后端分离方案,以及分离过程中遇到的问题及解决方案. 一.前言 vivo官方商城在2015年创建网上商城,开辟网络销售渠道,几年 ...

  9. C#读取FX5U线圈(modbusTCP)

    第一步:导入所需的类库 第二步:包含命名空间 第三步:实例化modbus类 ModbusTcpNet busTcpClient = null; busTcpClient = new ModbusTcp ...

  10. P1439-DP【绿】

    轻敌了啊...题目一共只有几句话但我却忽略了一个重大信息... 总之我显示写出了时空复杂度都是n^2级别的朴素递推算法,这没什么,基本功而已,然后50分 我试了试滚动数组,把空间复杂度降到了n级别,但 ...