CentOS上更优的第三方仓库
创始人
2025-02-12 08:11:04
0

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 仓库依赖它。

CentOS wiki 上有较完整的仓库列表:更多的第三方仓库 ,用哪些,不用哪些,里面都有建议。 

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
P2P的自白|我不生产内容,我... 现在一提起P2P,人们就会联想到正在被有关部门“围剿”的互联网理财服务。×租宝事件使得劳...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...