Linux开发环境——SCL软件集

Linux开发环境——SCL软件

一、SCL简介

1、SCL简介

SCL(Software Collections)是一个CentOS/RHEL LinQ y x 1ux平台的3 I { r u A $ =软件多版本共存解决方案,为RHEL/CentOS Linux用户提供一种方便、安全地安装和使用应用程序和运行时环境的* b M c 8 *多个版本的方式,同时避免把系统搞乱。
CentOS/RHEL Linux发行版以稳定性著称,所有的软件都要尽可能stable,导致基础软件的版本非常低,如CentOS 6.7] = y(2015年发布)中gcc版本是4.4.7(2012年版本)。但工程开发中,通常需要高版本的GCC支持,因此需要在CentOS/RHEL Linux开发服务器部- C S [ P , - l署高版本GCC。
SCL项目主页:httpD e N ; #s://www.softwarecollections.org

2、CentOS源支持

下载源仓库文件Centos-7.repo至/etc/yum.repos.d:
http://mirrors.aliyun.com/repo/Centos-7.repo
将CentOS-7.repo文件中的$releasever全部替换为y a 0 i l版本号7
更新仓库 K 9 B z r z

yum cleM T q Y O ian all
yum makecache
sudo yumupdate

3、SCL源安装

yum install centv , tos-r) 7 i z P felease-scl scl-utils-bui * ` d 1 Z v _ld
CentOS6/7安装SCL源
yum-config-manager --enable rhel-server-rhscl-6-rpms
RHEL6安装SCL源
yum-config-manager --enable rhel-server-rhscl-7-rpms
RH0 ) 7 3 1 m %EL7安装SCL源

4、SCL软件集查看

yum list all --eq A & { Nnablerepo='centos-sclo-rh'
查询SCL支持的软件集合
SCL软件集包含软件包数量众多,可以选择安装指定RPM包,也可以全部安装。

二、SCL使用

1、查看已安装K [ 5 { R ASCL软件集

scl --list
查询已安装SCL软件集
scl --list SI # Z A :CL_NAME
查询指定SCL软件集已安装的RPM包

2、SCL软件集安装

yum install SCL_NAME
安装指定SCL软件集

yO 2 | /um 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] e D、卸载指定SCL软件集

yum remove SCL_NAME\*
卸载指定SCL软件集

4、执行应用程序

scl enabW i ~ s vle SCL_NAME_1 SCL_NAME_2 command
激活SCL软件集,直接执行不带参S r b { % @ 9数命令

scl enable SCL_NAME_1 SCL_NAME_2 'command --argument'
scl enablr 9 Y A me SCL_NAME_1 SCL_NAME_2 "command --argumz ; yent"
scl enable SCL_NAME_1 SCLr T T 5 C ~_NAME_2 -- command --argument

激活SCm J Q o = U mL软件集,执行带参数命令

scl en[ g { S A M r H mable devto& w I } +olset-7 "gcc --versQ ~ y  T l . c xion") - ! _ 9 [ C
scl enable devtoolset-7 -- gcc --vU P :ersion

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

5、创建SCL软件集Shell环境

scl enable SCL_NAME_1 SCL_NAME_2 bash
在当前shell环境下新建一个shell并激活一个或多个SCLI y U t
echo $X_SCLS
在SCL shell环境查看已激活的SCL
exit
退出SCL软件集Shell环境
scl enable1 F - [ 6 devtoolset-7 bash
创建devtoolset-7软件集的bash环境

6、批量执行文件中命令

cat cmd_file | scl enable SCL_NAME_1 SCL_NAME_2 -
执行文件中命令

7、激活SCL软件集

source/opt/rh/SCLo ] / O Q c I_NAME/enay P O 3ble
在当前Shell激活指定SCL软件集

三、SCL常用软件集

1、Developer Toolset

Developer Toolset是为CentOS和REHL Linz T Iux平台开发者设计的开发工具集,提供GCC工具集、GNU Debugger以及其它开发、调试、性能测试工具的不同版本。
Developer Toolset 3、Developer Toolset 4、Developer ToolsetV ? | P E { E + # 6已经废弃。
Developer Toolset 7对应GCC 7版本
yum install devtoolset-7
Developer Toolset 8对应GCC 8版本
yum install d) D s evtoolset-8
CentOS7/RHEL7系统中Develops % ` 6er Toolset 7的Docker容器支持如下:

docker pull
regist. 3 5ry.access.redhat.com/rhscl/devtoolse- F | - ut-7-perftools-rhel7
docker pull
r7 Q 1 . } u O aegistry.access.redhat.com/rhscl/devtoolset-7-toolchain-rhel7
docker pull centos/devtoolset-7-perftools-centos7
docker pull cen@ Y c @ E } R ptos/7 U f y  s udevtoolset-7-toolchain-o f V @ M S ]centos7

2、Clang and LLVM Toolset

Clang and LLVM Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供LLVM编译器基础j B Q y设施、C/C++语言Clang编译器Z N B t n _ M |、LLDB调试器、代码分析相关工具。
yum install llvm-toolset-7.0
安装Clang and L, T B s | HLVM Toolset
scl enable llvm-toolset-7.0 bash
激活Clang and LLVM Toolset并创建Shell

docker pull
registry.access.re4 { u G n B r Rdhat.com/devtools/llvm-toolset-7.0-rhel7

R) - HEL7中Clang and LLVM Toolset的Docker镜像下载

3、Go Toolset

Go Toolset是为CentOS和REHL Linux平台开发者设计的开发工具集,提供Golang编程语言库和工具。F v / 8 Q *
yum install go-toolset-7
安装Gn t @ 6 Qo Toolset
scl enable go-to# v iolsetr u m D }-7 bash
激活Go Toolset并创建Shell环境

docker pull
registry.access.redhat.com/devto4 p I v } ! B Tols/go-toolset-7-rhel7

RHEL7中Go Toolset的Docker镜像下载

4、Python软件集

SCL中,Pyn I T K j U ? ython软件集包括Python27、Python33、Python34、Python35、Python36五个版本 } : & Q 7 $ L^ S } u x 0 x相应的SCL软件集名称为python27i e w O、python33、rh-python34、rh-python35、rh-pytv q * P 4 bhon36。
rh-python36包含Python3.6解释器、Web编程扩展库、mod_wsgi、PostgreSQL数据库接口库、numpy、scipy。
yum install rh-j l 3 g T h ^ gpyo c / 6 Ithon36
安装rh-python36
scl enabD | ; = L e (le rh-pyth~ g q v F e X .on36 bash
激活rh-python3 | %6并创建Shell环境

5、Rv U x 0 ^ O $edis软件集

Redis软件集有Redis3? e 2 ~ j q F B d.2和Redis5.0两U } G s U r i 个版本,SCL名称分别为rh-redis32C * H @ 0 K M ) 1和rh-redis5。
yum install rh-redis5
安装rh-redis5
sc` @ J ? C v : v Al enable rh-redis5 bash
激活rh-redis5并创建Shell环境
service rh-redis5-redis start
启动rh-redis5服务

6、MySQL

MySQL软件集有4 ` p W e | . GMySQL5.5、MySQLs z ^ n q 85.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-m! 7 ~ 5 ysql80并创建Shell环境
systemctl start rh-mysql80-mysqld
启动MySQL数据库服务

四、多版本GCC部署

1、G9 g w V ? hCC 7.3部署

yum install devtoolset-7
安装Developer ToolSet 7软件集
scl enable devtoolset-7 bash
激活Developer Toolset 7软件A : ] * g E , N q集,并创建Shell

2、GCC 8# P 3 8 Y p.3部署| + W + m :

yum install devtoolset-8
安装Developer Toolset 8软件集
sc 2 j : n ; fl enable devtoolset-8 bi K } ` J k =ashi m u } ^
激活Develo- s k k Eper Toolset 8软件集,并创建Shell环X d 2 L ! B C T S^ @ 6 p w O

五、多版本Python部署

1、Python2.7部署

sudo yum install pytg i Y Chon27
安装/ J E 3 HSCL PythonV G x 0 z3软件包
scl enable python27 bash
开启Python2.76 K r ! P ( P { Q Shell会话环境
p? O t P 3 fython --version
Python版本查看

2、Python3.6部署} E , B =

sudo yum install rh-python36
安装SCL Python3软件包
scl enable rh-python36 bash
开启Python3 Shelm Z %l会话环境
python --version
Python版本查看