一、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. 实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组

    大量复杂.乱序的图片依次标注效率极低,如果一次可以标注一大片的图片将极大地提升标注效率. 自动分组识别并提取图像特征,通过ModelArts先进的聚类算法可以将所有图片分组:将特征相似的图片归为一类, ...

  2. grpc双向流究竟是什么情况?2段代码告诉你

    摘要:为什么需要grpc双向流? 本文分享自华为云社区<grpc双向流究竟是什么情况?2段代码告诉你>,作者:breakDawn. 为什么需要grpc双向流? 有时候请求调用和返回过程,并 ...

  3. APP加固原理与作用

    APP加固原理与作用 引言 在移动应用开发中,APP加固是一种保护应用代码逻辑的重要措施.通过对应用文件进行隐藏.混淆和加密等操作,可以有效提高软件的逆向成本,降低被破解的几率.本文将介绍APP加固的 ...

  4. 火山引擎 DataTester:在广告投放场景下的 A/B 实验实践

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 "我知道在广告上的投资有一半是无用的,但问题是我不知道是哪一半." --零售大亨约翰·沃纳梅克 ...

  5. MongoDB 副本模式,会映射到本地 127.0.0.1 错误

    基于 MongoDB 读写分离--Windows MongoDB 副本集配置 ,里面配置了一个坑,导致出现下列错误 [2021-05-10 10:06:11.981] [cluster-Cluster ...

  6. & 0xFF 作用 取低8位

    & 0xFF 取低8位 @Test void byteTest() { byte hex1 = (byte) 127; byte hex2 = (byte) 383; byte hex3 = ...

  7. drf-jwt配置文件 jwt签发认证源码分析 自定义用户签发认证 simpleui后台管理美化 权限控制 (acl、rbac)

    目录 昨日回顾 接口文档 自动生成接口文档 接口文档必备的内容 cookie-session-token发展史 token原理 base64 快速签发 定制返回格式 jwt的认证 drf-jwt配置文 ...

  8. CNS0项目创建交货单增加销售办事处

    1.业务需求 1.1.销售办事处介绍 销售办事处是指在企业中负责销售活动的区域性单位或部门.在SD模块中,可以表示企业的不同销售地点.销售办公室.分销中心或分公司. 销售办事处扮演着多种角色和职责,例 ...

  9. STM32CubeMX教程17 DAC - 输出三角波噪声波

    1.准备材料 正点原子stm32f407探索者开发板V2.4 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 ...

  10. 【Boost】Windows端使用 MSVC14.2 编译 Boost 并在 CMake 项目中使用

    Write 2023.7.24 关于 boost 在 Windows 下的使用 gcc 安装与 CLion 的配置, 能够查到的英文资料都比较少, 踩过坑后记录一下. MinGW 安装 Boost B ...