SCL基本用法
目录
Software collections(SCLs)是一个Linux软件多版本共存的解决方案,适用于RHEL/CentOS/Fedora。
SCL不修改已安装的软件版本,也不会与其产生冲突。
CentOS是RHEL的社区版,服务器环境偏向于稳定安全,官方YUM源的软件版本相对保守,开发时经常遇到某些工具版本较低无法满足需求的问题,比如GCC、CMake等, 过去我一般是下载源码包编译安装,直到后来遇到SCL。
我的系统是CentOS 7.2,官方YUM源提供的GCC最高版本是4.8.5,下面演示如何安装并使用GCC 5。
首先安装scl工具和SCL软件源:
|
|
然后安装devtoolset-4:
|
|
SCL一般包含多个RPM包,devtoolset-4集合下软件包数量众多,有C相关的,有Java相关的,可以选择安装指定RPM包,如
yum install devtoolset-4-gcc
此时系统已安装两个版本的GCC:
- GCC 4.8.5(官方YUM源)
- GCC 5.3.1(SCL)
|
|
scl命令用于激活SCL版本和在该环境下执行其他操作,可以同时激活多个SCL,执行其他命令的方式有:
-
直接运行应用程序
对于不带参数的命令
1
scl enable SCL_NAME_1 SCL_NAME_2 command
对于带参数的命令,有两种写法:引号和命令分隔符。
1 2 3
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
-
新建一个Shell环境
在当前shell环境下新建一个shell并激活一个或多个SCL
1
scl enable SCL_NAME_1 SCL_NAME_2 bash
在新的shell环境下,执行命令
echo $X_SCLS
,查看已激活的SCL; 退出环境,执行命令exit
。 -
执行记录在文件中的命令
一般用于批量执行命令
1
cat cmd_file | scl enable SCL_NAME_1 SCL_NAME_2 -
查看已安装的SCL
|
|
查看指定SCL下已安装的RPM包
|
|
卸载整个SCL
|
|
参考