Software Collections and Developer Toolset

Developer Toolset

Developer Toolset(devtoolset)版本对应的集合见下表。其中 $ver = 大版本(6, 7, 8),$arch = 架构(x86_64)。

Developer Toolset 集合名称 Software Collections 仓库
11.0 beta devtoolset-11 非 CERN 维护 Red Hat 订阅
10.1 (10.0) devtoolset-10 非 CERN 维护 /centos/$ver/sclo/$arch/rh
9.1 (9.0) devtoolset-9 非 CERN 维护 /centos/$ver/sclo/$arch/rh
8 devtoolset-8 - /centos/$ver/sclo/$arch/rh
7 devtoolset-7 - /centos/$ver/sclo/$arch/rh
6.1 (6.0) devtoolset-6 -
4.0 devtoolset-4 -
3.1 devtoolset-3 2.0
3.0 devtoolset-3 1.2
2.1 (2.0) devtoolset-2 -
1.1 devtoolset-1.1 -

Developer Toolset 各版本对应的部分常用工具版本见下表。可以根据需要的 gcc 版本选择安装对应的 devtoolset,从 6.1 版本起集成常用自动构建工具 make。

Developer Toolset gcc/g++/gfortran binutils elfutils gdb make oprofile
11.0 beta 11.2.1 2.36 0.185 10.2 4.3 1.4.0
10.1 10.2.1 2.35 0.182 9.2 4.2.1 1.4.0
9.1 9.3.1 2.32 0.176 8.3 4.2.1 1.3.0
8 8.2.1 2.30 0.174 8.2 4.2.1 1.3.0
7 7.2.1 2.28 0.170 8.0.1 4.2.1 1.2.0
6.1 6.3.1 2.27 0.168 7.12.1 4.1 1.1.0
6.0 6.2.1 2.27 0.167 7.12 - 1.1.0
4.0 5.2.1 2.25 0.163 7.10 - 1.1.0
3.1 4.9.2 2.24 0.161 7.8.2 - 0.9.9
2.1 4.8.2 2.23.52 0.155 7.6.34 - 0.9.8

安装6及以后版本

使用 yum 安装,没权限时请自行添加 sudo,找不到源时可以先安装 epel-release 包。

yum install centos-release-scl-rh centos-release-scl -y
yum install devtoolset-7 # 根据期望的版本,将 7 改为 6,7,8,9

启用 devtoolset,可以将 $SHELL 改为期望的终端(如:zsh,bash等)。

scl enable devtoolset-7 $SHELL

另外 devtoolset-10-toolchain 可以仅安装编译开发调试工具(如:gcc,gdb,make),devtoolset-10-perftools 可以仅安装性能监控工具(如:valgrind,oprofile)。

安装4及以前版本

使用 yum 安装可能会找不到源,可能需要去 rpm 镜像站找 scl-utils 和 devtoolset-3 yum 源的安装包手动安装。

rpm -ivh "http://vault.centos.org/6.6/updates/x86_64/Packages/scl-utils-20120927-27.el6_6.x86_64.rpm"
rpm -ivh "https://www.softwarecollections.org/repos/rhscl/devtoolset-3/epel-6-x86_64/noarch/rhscl-devtoolset-3-epel-6-x86_64-1-2.noarch.rpm"
yum install devtoolset-3 -y

启用 devtoolset,可以将 $SHELL 改为期望的终端(如:zsh,bash等)。

scl enable devtoolset-3 $SHELL

scl-utils

scl-utils 是管理使用 Software Collections 的便捷工具,一般推荐安装。要查看当前安装了哪些 Software Collections,可以输入 scl --listscl enable 则是调用对应环境的 source,这是临时的,且只对当前终端有效。进入环境后可以使用 exit 命令退出环境。
结合以上特性,可以添加一系列 alias,方便我们快速切换环境。将以下代码插入 .bashrc 中,

# scl alias
if [[ -n $(command -v scl) ]]; then
    for item in $(scl -l); do
        alias scl-${item}="scl enable ${item} ${SHELL}"
    done
fi

# default scl environment
def_scl=devtoolset-7 # 默认启用 devtoolset-7,可以随意更改
if [[ -f "/opt/rh/${def_scl}/enable" ]]; then
    source "/opt/rh/${def_scl}/enable"
fi

则此时出现了命令别名 scl-xxx,根据已安装的包,xxx 可以是 devtoolset-7 等,而这些别名可以自动补全(某种程度上代替了 scl -l,本人认为十分方便)。同时默认启用 devtoolset-7,如果不需要的直接删除即可。

参考链接

最后更新于:2021年10月25日。

版权声明:
作者:dorence
链接:https://wp.dorence.top/archives/22
来源:极客模拟
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录