Skip to content

scl-rhel/centos软件运行环境

scl(Software Collections)给 RHEL/CentOS 用户提供一种同时使用多个软件版本的运行环境,避免以方便、安全地安装和使用应用程序和运行时环境的多个(而且可能是更新的)版本的方式,同时避免把系统搞乱。

可以用来安装高版本的gcc

安装

$ sudo yum install -y centos-release-scl  
$ sudo yum install -y scl-utils-build  
$ sudo yum install -y scl-utils

查看yum中所有的源

$ yum repolist

执行结果:
repo id                     repo name
!base/7/x86_64              CentOS-7 - Base - 163.com !centos-sclo-rh/x86_64      CentOS-7 - SCLo rh
!centos-sclo-sclo/x86_64    CentOS-7 - SCLo sclo
!extras/7/x86_64            CentOS-7 - Extras - 163.com
!updates/7/x86_64           CentOS-7 - Updates - 163.com

可以看到yum中新增了两个scl源

查看scl源中的包

$ yum --disablerepo='*' --enablerepo='centos-sclo-rh' list available
$ yum --disablerepo='*' --enablerepo='centos-sclo-sclo' list available
$ yum --disablerepo="*" --enablerepo="centos-sclo-rh" search devtoolset

安装scl源中的包

  • 先用上面两条命令搜索包名
  • 然后直接用yum安装

例如安装9.x版本的gcc和gdb

$ sudo yum install -y devtoolset-9-gcc.x86_64 devtoolset-9-gcc-c++.x86_64 devtoolset-9-gcc-gdb-plugin.x86_64 devtoolset-9-gdb.x86_64

查看安装的scl包

$ scl --list

进入新的环境工作

$ scl enable devtoolset-9 bash
$ gcc --version

从环境中退出

$ exit

安装node.js 12

参考https://www.softwarecollections.org/en/scls/jstanek/rh-nodejs12/

# 1. Install a package with repository for your system:
# On CentOS, install package centos-release-scl available in CentOS repository:
$ sudo yum install centos-release-scl-rh

# On RHEL, enable RHSCL repository for you system:
$ sudo yum-config-manager --enable rhel-server-rhscl-7-rpms

# 2. Install the collection:
$ sudo yum install rh-nodejs12

# 3. Start using software collections:
$ scl enable rh-nodejs12 bash