[转帖]Linux开发环境——SCL软件集
一、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
更新仓库:
-
yum clean all
-
-
yum makecache
-
-
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软件集,直接执行不带参数命令
-
scl enable SCL_NAME_1 SCL_NAME_2 'command --argument'
-
-
scl enable SCL_NAME_1 SCL_NAME_2 "command --argument"
-
-
scl enable SCL_NAME_1 SCL_NAME_2 -- command --argument
激活SCL软件集,执行带参数命令
-
scl enable devtoolset-7 "gcc --version"
-
-
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容器支持如下:
-
docker pull
-
-
registry.access.redhat.com/rhscl/devtoolset-7-perftools-rhel7
-
-
docker pull
-
-
registry.access.redhat.com/rhscl/devtoolset-7-toolchain-rhel7
-
-
docker pull centos/devtoolset-7-perftools-centos7
-
-
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
-
docker pull
-
-
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环境
-
docker pull
-
-
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版本查看

QQ群名片
[转帖]Linux开发环境——SCL软件集的更多相关文章
- Linux开发环境的搭建和使用——Linux本必备软件SSH
SSH 至 Secure Shell 缩写.由 IETF 网络工作组(Network Working Group)开发:SSH 以建立应用层和传输层安全协议中的基础上. SSH 是眼下较可靠,专为远程 ...
- 用Windows+VirtualBox搭建嵌入式Linux开发环境
Windows+VirtualBox的嵌入式Linux开发环境的搭建 最近一直在学习Linux的设备驱动编写,一直是在物理机上安装的Ubuntu进行的,但是在Ubuntu12.04的系统中,已经不能用 ...
- 熟悉linux开发环境(实验)
北京电子科技学院(BESTI) 实验报告 课程: 深入理解计算机系统 班级: 1353班 姓名:张若嘉 杨舒雯 学号:20135330 20135324 成绩: 指导教师:娄嘉鹏 实验日期:2015. ...
- 一步步学习Linux开发环境搭建与使用
00.Linux开发环境搭建与使用1--Linux简史 01.Linux开发环境搭建与使用2--Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3--通过虚拟机安装系统(ub ...
- 利用 WSL 在 Windows下打造高效的 Linux 开发环境
WSL-Windows Subsystem for Linux 介绍 The Windows Subsystem for Linux lets developers run Linux environ ...
- Centos7升级gcc版本方法之一使用scl软件集
Centos7 gcc版本默认4.8.3,Red Hat 为了软件的稳定和版本支持,yum 上版本也是4.8.3,所以无法使用yum进行软件更新,所以使用scl. scl软件集(Software Co ...
- 如何在微软Windows平台上打造出你的Linux开发环境(转载)
如何在微软Windows平台上打造出你的Linux开发环境 投递人 itwriter 发布于 2013-12-10 11:18 评论(1) 有348人阅读 原文链接 [收藏] « » 英文原文: ...
- 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 北京海淀区 ...
- Linux开发环境搭建与使用系列教程
00.Linux开发环境搭建与使用1——Linux简史 01.Linux开发环境搭建与使用2——Linux系统(ubuntu)安装方案 02.Linux开发环境搭建与使用3——通过虚拟机安装系统(ub ...
- 基于AM3352/AM3354/AM3358/AM3359的Linux 开发环境搭建(上)
遇到不少人新手小白问,前辈如何搭建一个优良的Linux 开发环境?之前一直都是在用win开发,现在想要尝试用Linux做开发等等一系列的问题.开源一直是给电子行业工作者提供了一种向技术更深处进发的机遇 ...
随机推荐
- MySQL基础篇:第七章_详解mysql存储过程&函数
存储过程 含义:一组经过预先编译的sql语句的集合 好处: 1.提高了sql语句的重用性,减少了开发程序员的压力 2.提高了效率 3.减少了传输次数 分类: 1.无返回无参 2.仅仅带in类型,无返回 ...
- 从“13 天”到“0 天”延时,揭秘火山引擎 DataLeap SLA 保障最佳实践
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在数据治理中,如何实现 SLA 保障一直是"老大难"问题. 随着某房产 APP 稳定发展,楼盘 ...
- Feign 接口独立项目
Feign 接口独立项目,报下列错误,原因是缺少指定扫描包 [2021-05-11 22:40:07.676] [main] [WARN ] o.s.b.w.s.c.AnnotationConfigS ...
- Spring Boot Admin 自定义健康检查
添加自定义类: /** * 监控接口的健康情况 * */ @Component public class ApiHealthIndicator implements HealthIndicator { ...
- 【django-vue】主页前端搭建 git介绍和安装 git工作流程 git常用命令 git过滤文件 重写drf方法 跨域中间件 导出项目依赖
目录 上节回顾 1 主页前端 Header组件 Banner组件 Footer组件 2 git介绍和安装 git和svn比较 pycharm中配置git svn,git ,github,gitee,g ...
- 【JAVA基础】MySQL配置
mySQL配置 数据库连接 初始化配置 --创建用户 并授权 create user 'injasup'@'%' identified by 'supplier@2023#!'; GRANT SELE ...
- GitHub CEO发文:严格限制俄罗斯获取侵略性军事能力所需要的技术
前几天,在微信群里就有小伙伴发了一些关于GitHub将限制俄罗斯开发人员使用开源软件的消息,引起程序员圈子的热烈讨论. 就在不久前,GitHub CEO在GitHub官方博客发文阐述了对乌克兰战争的回 ...
- 例题 5-7 丑数(Ugly Numbers,UVa 136)
题意: 丑数是一些因子只有2,3,5的数.数列1,2,3,4,5,6,8,9,10,12,15--写出了从小到大的前11个丑数,1属于丑数.现在请你编写程序,找出第1500个丑数是什么. 思路: 如果 ...
- Codeforces 115A Party (并查集思维)
题意: 给你每个人的上级,并且一个人和他的所有上级都不能在一个party(小组)中(这点是根据题目给出的两点推导出来的),问最少需要几个party. 思路: 并查集,找一个集合中层级数最多的就是最少需 ...
- <vue 路由 8、keep-alive的使用>
一. 知识点 1.什么是keep-alive? keep-alive是Vue.js的一个内置组件. 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们.它自身不会渲染一个 DOM 元素,也 ...