如何在 CentOS 上启用软件集合 (SCL)

Red Hat Enterprise Linux (RHEL) 及其社区分支 CentOS 提供 10 年生命周期,这意味着 RHEL/CentOS 的每个版本都更新了长达 10 年的安全补丁。虽然如此长的生命周期保证了企业用户急需的系统兼容性和可靠性,但不利之处在于,随着底层 RHEL/CentOS 版本接近生命周期结束 (EOF),核心应用程序和运行时环境变得陈旧。例如,CentOS 6.5 的 EOL 日期为 2020 年 11 月 30 日,附带python2.6.6 和 MySQL 5.1.73,按照今天的标准,它们已经很老了。

另一方面,尝试手动升级 RHEL/CentOS 上的开发工具链和运行时环境可能会破坏您的系统,除非所有依赖项都得到正确解决。一般情况下,不建议手动升级,除非您知道自己在做什么。

软件集合(SCL)库应运而生,在这种情况下,RHEL / CentOS用户的帮助。创建 SCL 的目的是为 RHEL/CentOS 用户提供一种方法,可以轻松安全地安装和使用多个(可能是更新的)应用程序和运行时环境,而不会弄乱现有系统。这与可能导致已安装软件包之间冲突的其他第三方存储库形成对比。

在本教程的其余部分,让我向您展示如何设置 SCL 存储库以及如何从 SCL 安装和启用包。

设置软件集合 (SCL) 存储库

SCL 可用于 CentOS 6.5 及更高版本。要设置 SCL,只需运行:

在 CentOS 7 及更高版本上:

$ sudo yum install centos-release-scl

在 CentOS 6.X 上:

$ sudo yum install centos-release-SCL

要从 SCL 启用和运行应用程序,您还需要安装以下软件包。

$ sudo yum install scl-utils-build

您可以通过运行以下命令浏览 SCL 存储库中可用软件包的完整列表:

$ yum --disablerepo="*" --enablerepo="scl" list available

从 SCL 安装和启用包

现在您已经设置了 SCL,您可以继续安装 SCL 中的任何包。

您可以使用以下命令搜索 SCL 包:

$ yum --disablerepo="*" --enablerepo="scl" search <keyword>

假设您要安装 Python 3.3

继续像往常一样安装它yum

$ sudo yum install python33

您可以随时通过运行以下命令检查从 SCL 安装的软件包列表:

$ scl --list
python33

SCL 的一个好处是从 SCL 安装包不会覆盖任何系统文件,并且保证不会与其他系统库和应用程序发生任何冲突。

比如python安装后查看默认版本python33,会看到默认版本还是一样的:

$ python --version
Python 2.6.6

如果您想尝试已安装的 SCL 包,您需要使用以下命令在每个命令的基础上显式启用它
$ scl enable <scl-package-name> <command>

例如,python33python命令启用包:

$ scl enable python33 'python --version'
Python 3.3.2

如果您想在启用python33包的同时运行多个命令,您实际上可以创建一个启用 SCL 的bash会话,如下所示。

$ scl enable python33 bash

在此bash会话中,默认值python将切换到 3.3,直到您键入exit并终止会话。

简而言之,SCL 与virtualenvPython 的有点相似,但更通用,因为您可以为比 Python 多得多的应用程序启用/禁用 SCL 会话。

有关 SCL 的更多详细说明,请参阅官方快速入门指南

猜你喜欢

转载自blog.csdn.net/allway2/article/details/121720058