【Linux】关于软件集Software Collections

一、关于Software Collections简介

 

CentOS/RHEL Linux 发行版以稳定性著称,所有的软件都要尽可能 stable,导致的一个结果就是基础软件的版本非常的低,比如 CentOS 6.7(15年发布) 中 gcc 版本还是 4.4.7(12年的版本)。

这对开发来说就不是很友好,比如我们想用 C++ 11 中的某个特性,就必须自己编译一个高版本的 gcc 出来,但是这会有另外一个问题,开发环境不好维护,如果自己有多台电脑或者多个人合作的项目,每台机器上都要自己编一份,维护起来就比较麻烦。

 

本文将为你介绍如何在CentOS上启用软件集Software Collections(简称为SCL)的方法。

SCL(全称是Software Collections),它可以让你在同一个操作系统上安装和使用多个版本的软件,而不会影响整个系统的安装包。

SCL为社区的以下需求而设计:创建和使用软件集合生产系统、概念验证系统、开发测试平台。SCL目前已经支持Fedora和RHEL(衍生版本如CentOS也包含在内)。

SCL的创建就是为了给RHEL/CentOS用户提供一种以方便、安全地安装和使用应用程序和运行时环境的多个(而且可能是更新的)版本的方式,同时避免把系统搞乱。与之相对的是第三方源,它们可能会在已安装的包之间引起冲突。

 

SCL项目主页:https://www.softwarecollections.org

更多的软件集参看:https://www.softwarecollections.org/en/scls

 

二、安装使用

 

#  yum install centos-release-scl

#  yum install scl-utils scl-utils-build

# rpm -qa | grep scl

 

#  rpm -ql centos-release-scl

#  cat /etc/yum.repos.d/CentOS-SCLo-scl.repo

 

 

# scl --help

# yum list all --disablerepo="*" --enablerepo='centos-sclo-rh' 

# yum list all --disablerepo="*" --enablerepo='centos-sclo-rh' | grep gcc

 

如果使用如下命令,会将installdevtoolset-7和llvm-toolset-7 下的软件包全部下载:

# yum   -y  installdevtoolset-7

 # yum  -y install llvm-toolset-7

 

我们一般选择性安装:

# yum  -y  install   devtoolset-7-gcc   devtoolset-7-gcc-c++

#  yum  -y  install   llvm-toolset-7-cmake

 

 

那么,我怎么知道哪个包应该在哪个toolset下载?

# yum list all | grep gcc  

# yum list all | grep gcc-c++

# yum list all | grep cmake

 

# scl --list

 

# ll /opt/rh/

# ll /opt/rh/devtoolset-7/

# ll /opt/rh/devtoolset-7/root/

# ll /opt/rh/llvm-toolset-7/root/

从上可以看出,安装devtoolset 相应的版本,会在 /opt/rh 下新增一个根,类似chroot技术,和原操作系统的根相对独立,供这个软件独立使用。

 

# scl enable devtoolset-7 bash

#  gcc  --version

#  exit 

#   scl enable  devtoolset-7   "gcc --version"

 

# scl enable llvm-toolset-7 bash

# cmake --version

# exit

# scl enable llvm-toolset-7 "cmake --version"

 

 

三、参考

 

Developer Toolset

https://linux.web.cern.ch/devtoolset

 

CentOS6 安装gcc4.8及以上版本

https://www.cnblogs.com/52fhy/p/12547521.html

 

Software Collections Quick Start

https://www.softwarecollections.org/en/docs

 

CentOS/RHEL 开发环境之 devtoolset

http://blog.fungo.me/2016/03/centos-development-env

 

软件集Software Collections

https://yq.aliyun.com/articles/523581

 

在CentOS上启用软件集Software Collections(SCL)

https://ywnz.com/linuxjc/2215.html

 

 

如何在CentOS7上安装python3

https://haoweisz.top/post/How%20to%20Install%20Python%203%20on%20CentOS%207.html

 

如何在 CentOS 上启用软件集 Software Collections

http://80imike.github.io/posts/62916.html

 

CentOS7 使用SCL(SoftwareCollections)

https://codeleading.com/article/80391033954/;jsessionid=9CF258B2E48773F30F3EDF8C2C01DAA1

 

 

在你准备升级GLIBC库之前,你要好好思考一下:

你真的要升级GLIBC么?

你知道你自己在做什么么?

glibc是gnu发布的libc,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。

总的来说,不说运行在Linux上的一些应用,或者你之前部署过的产品,就是很多linux的基本命令,比如cp, rm, ll之类,都得依赖于它

网上很多人有惨痛教训,甚至升级失败后系统退出后无法重新进入了!

 

CentOS下安装高版本GCC

https://www.cnblogs.com/zhming26/p/6691465.html

https://blog.csdn.net/fm0517/article/details/79077706

 

通过安装scl软件集,使用高版本gcc的方法

https://blog.51cto.com/lee90/2066799

 

CentOS6.5升级GCC

https://blog.51cto.com/xiexiaojun/1934746?spm=a2c4e.10696291.0.0.2a7819a4tk4tiy

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值