一、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. spring-mvc 系列:拦截器和异常处理器(HandlerInterceptor、HandlerExceptionResolver)

    目录 一.拦截器的配置 二.拦截器的三个抽象方法 三.多个拦截器的执行顺序 四.基于配置的异常处理器 五.基于注解的异常处理器 一.拦截器的配置 SpringMVC中的拦截器用于拦截控制器方法的执行 ...

  2. 云图说:云数据库 RDS for MySQL一键开通读写分离,轻松应对业务高峰期

    摘要:华为云数据库 RDS for MySQL提供一键开通读写分离功能,只需要一个连接地址,让您在业务高峰期不再迷茫,不再慌乱,so easy 的应对业务. 本文分享自华为云社区<云图说 | 第 ...

  3. Sublime Text Python 代码提示插件 Anaconda

    1.Ctrl+Shift+P -> install package 安装 Anaconda 查看Python 安装路径 { "python_interpreter":&quo ...

  4. Vue 多环境配置

    没有使用 package.json 进行配置 ,改配置时不需要重新打包 Vue 多环境配置 package.json settings.js window.environment="dev& ...

  5. CMake 禁用 MSVC 编译警告 C4819

    warning C4819:该文件包含不能在当前代码页(936)中表示的字符.请将该文件保存为 Unicode 格式以防止数据丢失 if (win32) add_complie_options(/W4 ...

  6. AtCoder Beginner Contest 162 C~F

    比赛链接:Here AB水题, C - Sum of gcd of Tuples (Easy) 题意:\(\sum_{a=1}^{K} \sum_{b=1}^{K} \sum_{c=1}^{K} g ...

  7. VS以及C++开发和学习使用注意事项

    VS以及C++开发使用注意事项 在vs2013版本开始出现安全检查 最好提前禁用错误4996 制表符问题:Visual Studio中设置Tab键对应空格数的方如下:依次选择:工具-〉选项 -〉文本编 ...

  8. Codeforces Round #706 Editorial

    1496A. Split it! 类回文判断,只要 k = 0 或者 \(s[1,k] 和 s[n - k + 1,n]\)是回文即可 特判情况 n < 2 * k + 1 为 NO int m ...

  9. Serverless 时代开启,云计算进入业务创新主战场

    作者 | 于洪涛 "我们希望让用户做得更少而收获更多,通过 Serverless 化,让企业使用云服务像用电一样简单." Serverless 化正在成为全新的软件研发范式,阿里云 ...

  10. 5 Englishi 词根

    词根 1 ced/cess = go 行走 precede    pre=before   ced =go unprecedentedly  un   pre  ced +ed变成adj  +ly 变 ...