CentOS 上最佳的第三方仓库

从 Software Collections、EPEL 和 Remi 获得可靠的 CentOS 新版软件。

在 Red Hat 企业 Linux(RHEL) 上,提供那些早已老掉牙的软件已经是企业级软件厂商的传统了。这倒不是因为他们懒,而确实是用户需要。很多公司像看待家具一样看待软件:我买一张桌子,能用一辈子,软件不应该也这样吗?

CentOS 作为 RHEL 的复制品有着同样的遭遇。虽然 Red Hat 还在为这些被厂商抛弃的过时软件提供支持、修补安全漏洞等,但如果你的应用依赖新版软件,你就得想办法了。 我在这个问题上不止一次碰壁。 LAMP 组合里任一个组件都需要其它所有组件能与其兼容,这有时就显得很麻烦。 比如说去年我就被 RHEL/CentOS 折腾得够呛。REHL/CentOS 第 6 版最高支持 PHP 5.3 ,第 7 版支持到 PHP 5.4 。而 PHP 5.3 早在 2014 年 8 月就到达 EOL(End Of Life) ,不再被厂商支持了, PHP 5.4 的 EOL 在 2015 年 9 月, 5.5 则是 2016 年 7 月。 有太多古老的软件版本,包括 MySQL、Python 等,它们应该像木乃伊一样被展示在博物馆里,但它们却活在你的系统上。

那么,可怜的管理员们该怎么办呢?如果你跑着 RHEL/CentOS ,那应该先试试 Software Collections,因为这是 Red Hat 唯一支持的新软件包源。 Software Collections 为 CentOS 设立了专门的仓库,安装和管理都和其它第三方仓库一样。但如果你用的是 RHEL 的,情况就有点不同了,具体请参考 RHEL 的解决方法Software Collections 同样支持 Fedora 和 Scientific Linux 。

安装 Software Collections

在 CentOS 6/7 上安装 Software Collections 的命令如下:


  1. $ sudo yum install centos-release-scl

centos-release-scl-rh 可能作为依赖包被同时安装。

然后就可以像平常一样搜索、安装软件包了:


  1. $ yum search php7
  2. [...]
  3. rh-php70.x86_64 : Package that installs PHP 7.0
  4. [...]
  5. $ sudo yum install rh-php70

最后一件事就是启用你的新软件包:


  1. $ scl enable rh-php70 bash
  2. $ php -v
  3. PHP 7.0.10

此命令会开启一个新的 bash 并配置好环境变量以便运行新软件包。 如果需要的话,你还得安装对应的扩展包,比如对于 Python 、PHP、MySQL 等软件包,有些配置文件也需要修改以指向新版软件(比如 Apache )。

这些 SCL 软件包在重启后不会激活。SCL 的设计初衷就是在不影响原有配置的前提下,让新旧软件能一起运行。不过你可以通过 ~/.bashrc 加载 SCL 提供的 enable 脚本来实现自动启用。 SCL 的所有软件包都安装在/opt 下, 以我们的 PHP 7 为例,在 ~/.bashrc 里加入一行:


  1. source /opt/rh/rh-php70/enable

以后相应的软件包就能在重启后自动启用了。有新软件保驾护航,你终于可以专注于自己的业务了。

列出可用软件包

那么,到底 Software Collections 里都是些什么呢? centos-release-scl 里有一些由社区维护的额外的软件包。除了在 CentOS Wiki 查看软件包列表外,你还可以使用 Yum 。我们先来看看安装了哪些仓库:


  1. $ yum repolist
  2. [...]
  3. repo id repo name
  4. base/7/x86_64 CentOS-7 - Base
  5. centos-sclo-rh/x86_64 CentOS-7 - SCLo rh
  6. centos-sclo-sclo/x86_64 CentOS-7 - SCLo sclo
  7. extras/7/x86_64 CentOS-7 - Extras
  8. updates/7/x86_64 CentOS-7 - Updates

Yum 没有专门用来打印某一个仓库中所有软件包的命令,所以你得这样来: (LCTT 译注:实际上有,yum repo-pkgs REPO list,需要 root 权限,dnf 同)


  1. $ yum --disablerepo "*" --enablerepo centos-sclo-rh \
  2. list available | less

--disablerepo 与 --enablerepo 选项的用法没有详细的文档,这里简单说下。 实际上在这个命令里你并没有禁用或启用什么东西,而只是将你的搜索范围限制在某一个仓库内。 此命令会打印出一个很长的列表,所以我们用管道传递给 less 输出。

EPEL

强大的 Fedora 社区为 Feora 及所有 RHEL 系的发行版维护着 EPEL:Extra Packages for Enterprise Linux 。 里面包含一些最新软件包以及一些未被发行版收纳的软件包。安装 EPEL 里的软件就不用麻烦 enable 脚本了,直接像平常一样用。你还可以用 --disablerepo 和 --enablerepo 选项指定从 EPEL 里安装软件包:


  1. $ sudo yum --disablerepo "*" --enablerepo epel install [package]

Remi Collet

Remi Collet 在 Remi 的 RPM 仓库 里维护着大量更新的和额外的软件包。需要先安装 EPEL ,因为 Remi 仓库依赖它。

原文发布时间为:2017-05-15

本文来自合作伙伴“Linux中国”

时间: 2024-11-02 15:01:43

CentOS 上最佳的第三方仓库的相关文章

CentOS上最佳的第三方仓库

从 Software Collections.EPEL 和 Remi 获得可靠的 CentOS 新版软件. 在 Red Hat 企业 Linux(RHEL) 上,提供那些早已老掉牙的软件已经是企业级软件厂商的传统了.这倒不是因为他们懒,而确实是用户需要.很多公司像看待家具一样看待软件:我买一张桌子,能用一辈子,软件不应该也这样吗? CentOS 作为 RHEL 的复制品有着同样的遭遇.虽然 Red Hat 还在为这些被厂商抛弃的过时软件提供支持.修补安全漏洞等,但如果你的应用依赖新版软件,你就得

Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库

Linux有问必答:如何在CentOS或者RHEL上启用Nux Dextop仓库 问题: 我想要安装一个在Nux Dextop仓库的RPM包.我该如何在CentOS或者RHEL上设置Nux Dextop仓库? Nux Dextop是一个面对CentOS.RHEL.ScientificLinux的含有许多流行的桌面和多媒体相关的包的第三方RPM仓库(比如:Ardour,Shutter等等).目前,Nux Dextop桌面对CentOS和RHEL 6/7可用. 要在CentOS或者RHEL上启用Nu

在CentOS上安装Percona服务器的方法

  在这篇文章中我们将了解关于 Percona 服务器,一个开源的MySQL,MariaDB的替代品.InnoDB的数据库引擎使得Percona 服务器非常有吸引力,如果你需要的高性能,高可靠性和高性价比的解决方案,它将是一个很好的选择. 在下文中将介绍在CentOS 7上 Percona 服务器的安装,以及备份当前数据,配置的步骤和如何恢复备份. 1.什么是Percona,为什么使用它 Percona是一个MySQL,MariaDB数据库的开源替代品,它是MySQL的一个分支,相当多的改进和独

Linux有问必答:如何在CentOS上安装phpMyAdmin

Linux有问必答:如何在CentOS上安装phpMyAdmin 问题:我正在CentOS上运行一个MySQL/MariaDB服务,并且我想要通过网络接口来用phpMyAdmin来管理数据库.在CentOS上安装phpMyAdmin的最佳方法是什么? phpMyAdmin是一款以PHP为基础,基于Web的MySQL/MariaDB数据库管理工具.虽然已经存在着一些诸如Adminer的轻量级数据库管理工具, 但是phpMyAdmin还是更加广泛应用于网站管理员之中来进行各种MySQL/MariaD

如何在Ubuntu/CentOS上安装Linux内核4.0

如何在Ubuntu/CentOS上安装Linux内核4.0 大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为'Hurr durr I'm a sheep'的Linux内核4.0是目前为止最新的主干内核.它是稳定版3.19.4之后发布的内核.4月12日是所有的开源运动爱好者的大日子,Linux Torvalds宣布了Linux内核4.0的发布,它现在就已经可用了.由于包括了一些很棒的功能,例如无重启补丁(实时补丁),新的升级驱动,最新的硬件支持以及很多有

Linux有问必答——如何查找并移除Ubuntu上陈旧的PPA仓库

Linux有问必答--如何查找并移除Ubuntu上陈旧的PPA仓库 问题:我试着通过运行apt-get update命令来再次同步包索引文件,但是却出现了"404 无法找到"的错误,看起来似乎是我不能从先前添加的第三方PPA仓库中获取最新的索引.我怎样才能清除这些破损而且陈旧的PPA仓库呢? Err http://ppa.launchpad.net trusty/main amd64 Packages 404 Not Found Err http://ppa.launchpad.net

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

红帽企业版 linux(RHEL)和它的社区版分支--CentOS,提供10年的生命周期,这意味着 RHEL/CentOS 的每个版本会提供长达10年的安全更新.虽然这么长的生命周期为企业用户提供了迫切需要的系统兼容性和可靠性,但也存在一个缺点:随着底层的 RHEL/CentOS 版本接近生命周期的结束,核心应用和运行时环境变得陈旧过时.例如 CentOS 6.5,它的生命周期结束时间是2020年11月30日,其所携带的 Python 2.6.6和 MySQL 5.1.73,以今天的标准来看已经

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

如何在 CentOS 上启用 软件集 Software Collections(SCL) 红帽企业版 linux(RHEL)和它的社区版分支--CentOS,提供10年的生命周期,这意味着 RHEL/CentOS 的每个版本会提供长达10年的安全更新.虽然这么长的生命周期为企业用户提供了迫切需要的系统兼容性和可靠性,但也存在一个缺点:随着底层的 RHEL/CentOS 版本接近生命周期的结束,核心应用和运行时环境变得陈旧过时.例如 CentOS 6.5,它的生命周期结束时间是2020年11月30

CentOS上安装Node.js和mongodb笔记

  CentOS上安装Node.js和mongodb笔记        这篇文章主要介绍了CentOS上安装Node.js和mongodb笔记,本文讲解了Python安装.Node.js安装.npm安装.mongodb驱动安装.mongodb数据库操作测试代码等内容,需要的朋友可以参考下 之前听说过Node.js,只是知道它可以应用于服务器端,但是对很多具体的东西并不了解.今天在QCon上听了袁锋的分享<Node.js脱离了浏览器的Javascript>之后,顿时有了想立刻试一下的冲动. No