可供 CentOS 使用的软件库
CentOS 及其它第三方开发者提供了一些软件库,收录了 base 及 updates 缺省软件库以外的软件组件。没有一个清单是百份百完整,因为任何人都可发布软件库,但我们在这里下了一点功夫,为每个软件库的内容作一个概述。这些软件库在 CentOS 社区内有不同程度的稳定性、支持、及合作。
1. 有关 enabled 及 disabled 的软件库配置文件
请参阅 man 5 yum.conf,尤其是有关 enabled=0 和 enabled=1 的对比。我们推荐 /etc/yum.repos.d/ 内的每个 .conf 档都应该包含上述选项。这样做可让系统的管理员更明确地指定寻找组件时应否检查某个软件库。每当编辑这些文件后,为求清除所有暂存信息和确保改动即时生效,请以 root 身份执行:
# yum clean all
2. CentOS 提供的附加软件库
CentOS Extras —— 在 CentOS 5 及 6,这些组件提供额外功能,但不损坏 CentOS 与上游的兼容性,也不会更新基本组件,然而上游并未测试这些软件,它们亦不包含在上游产品内。在 CentOS 7 及8 这是上游的软件库,也包含额外的 CentOS 组件。CentOS 的开发小组已经针对这个软件库内的每个程序作出测试,确定它们能在 CentOS 下运作。这个软件库已连同 CentOS 一并安装,并缺省为启用的。
CentOSPlus —— 这些组件为了提供额外功能,会更改 CentOS 的某些基本组件。这个软件库会导致 CentOS 与上游供应者的内容有异。CentOS 的开发小组已经针对这个软件库内的每个程序作出测试,确定它们能在 CentOS 下运作。上游供应者并未测试这些软件,它们亦不包含在上游产品内。这个软件库已连同 CentOS 一并安装,但缺省为停用的。由这个软件库提供的受欢迎组件包括:CentOS-Plus 内核(含有额外修正、驱动程序/功能的重建内核),支持 postgresql 数据库的 postfix(官方版本只支持 mysql)。
CentOS-Fasttrack —— FastTrack 是上游的计划,在正常定点发行周期外发行某些更新。上游已于 6.9 及 7.3 发行周期停用些渠道 上游文章。我们现在采用此软件库发行由社群修正的组件,它们会 取替 上游的版本。这是一个纯选择性的软件库,其内容由 CentOS QA 小组决定。我们现正计划一个从 git 接收修正档到此软件库的方案。我们将会在 freenode irc 的 #centos-devel 频道及 CentOS-Devel 邮件列表上讨论此软件库。
debuginfo —— 组件载有编译主组件时所产生的侦错符号。这个软件库的配置文件缺省是不被提供的。oprofile、crash 及 systemtap 等工具需要 debuginfo 组件。请留意 debuginfo 组件也许会未被签署,因此它们必须以 --nogpgcheck 来安装,或在软件库定义内采用 gpgcheck=0。这些组件可以在 http://debuginfo.centos.org/ 找到。
CR —— 持继发行(CR)软件库内藏有下个 CentOS 定点发行本的组件。此软件库只会由上游推出定点发行,直至 CentOS 推出官方发行期间才会有内容。它们应被视为测试性质,不推荐用于生产用的服务器。话虽如此,你或许应考虑这样做,因为它经常收录了创建自新定点发行版本却未面世的安全性修正。这个软件库的内容是用来建设公开发行的 ISO 映像用的。它背后的理念是让系统管理员能在现有的服务器上采用新定点发行版本的内容,而无须额外等候一至两个星期直至 ISO 映像面世。
kernel —— 替换结构很多时候不能采用 Red Hat 的内核(尤其是 armhfp)。这个软件库收录了供这些结构用的内核(来自 kernel.org 的 LTS)并且是由 替换结构 SIG 所维护的。由于这些内核对非 armhfp 用户亦有帮助,它们亦被创建给这些结构。缺省在 armhfp 下被启用,在其它结构下被停用。
experimental —— 与 kernel 软件库类同,但较新,就像是下个次要发行版本的内核的游乐场,有时当没有新版 LTS 时,这里会空置直到新版本被发行。此软件库是由 替换结构 SIG 所维护的。缺省被停用。
软件选集 —— 软件选集(SCL)软件库现在由 CentOS 特别兴趣小组所维护,因此严格来说并非一个 CentOS 软件库。它收录了某些程序的较新版本,这些版本可与旧版同时共存,并通过 scl 指令来执行。安装的方法是利用 yum --enablerepo=extras install centos-release-scl。截至本文,此软件库包含 devtoolset 3、4 及 6(不知 devtoolset-5 去了哪里),新版的 git,httpd24(2.4.18),新版的 mariadb,maven30 及 33,新版的 mongodb,数个 mysql 版本,数个 nginx 版本,nodejs010,数个 perl 版本,7.0 及以下版本的 php,postgresql92 及 95,数个 python 版本,eclipse46 和不同的 ruby 版本。坊间有软件库亦会提供类同的代用组件,你可以参考一个(相对)客观的 评论,比较 SCL 与其它软件库的分别。
PowerTools —— 只供 CentOS8 使用,PowerTools 软件库提供了大量开发者用的工具。缺省是停用的。
第三方软件库
|
警告: CentOS 并不提供或支持下列软件库。CentOS 计划对这些网站亦没有修订权。为了支持他们的组件,很多都有专用的邮件列表、IRC 频道、问题追踪库、等等。 |
|
|
注:假如你正考虑使用第三方软件库,你应该认真地思考如何防止来自这些软件库的「更新」不经意地取替了 CentOS 的核心部份。其中一个方法就缺省它们为停用的,有必要时才启用它们。见:man yum |
|
|
另一个方法就是于 /etc/yum.repos.d/ 内的相关 .conf 文件里使用 exclude= 及 includepkgs= 选项在子收藏库上。见:man yum.conf |
|
|
yum 的 Priorities 插件能防止第三方软件库取替 base 组件,或防止 base/updates 取代第三方组件。 |
0.1. 获社群认可的软件库
这些软件库经常获社群推荐,普遍维护得不错,并且为 CentOS 提供为数不少的额外组件。它们同样与 CentOS 没有 关系,是独立个体。上述有关更新及先后次序的警告仍然生效。
Extra Packages for Enterprise Linux (EPEL) ——(见 http://fedoraproject.org/wiki/EPEL )提供为 EL7 重建的 Fedora 组件。组件应该不会取替 base,虽然在过往的定点发行版本曾出现问题。你可以执行 yum --enablerepo=extras install epel-release 来安装 EPEL。epel-release 组件已包含在缺省获启用的 CentOS Extras 软件库内。支持可在 Freenode 的 #epel 频道、邮件列表、及它的 问题追踪库内找到。要是你愿意在 EPEL 更新被推送至 stable 软件库前协助测试,你可以在你的开发/测试伺服器上 启用 epel-testing 软件库。在作业中的伺服器上启用 epel-testing 不是个好主意。
EPEL Playground —— (见 https://hackmd.io/@ssmoogen/B1p2QM-eS)为 EPEL-8 提供一组名为 playground 的额外频道。它与 Fedora Rawhide 相似,用意是让包装者能处理那些版本更新较快的软件,或者API 的改动大致不能放进一般频道。用家该留意 EPEL8-playground 内的组件对服务等级没有任何承诺。你只应按需要从中抽取组件,不过 EPEL-Playground 内不少组件最后都会被提升为正式的 EPEL 组件。
The Community Enterprise Linux Repository (ELRepo) ——(见 http://elrepo.org/ )集中以 kmod 驱动程序来增强 EL6、EL7 及 EL8 的硬件支持(包括:显示、文件系统、硬件监控、网络、音效、网络摄像镜及存储器驱动程序)。也提供较新版的内核。请遵照 ELRepo 主页来安装 elrepo-release 组件并输入它的 GPG 金钥。详情请参阅网站。支持途径包括 Freenode 上的 #elrepo 频道,ELRepo 用户及 ELRepo 开发者的邮件列表,还有它的 问题追踪库。
LinuxTECH.NET 软件库 ——(见 http://pkgrepo.linuxtech.net/el6/ )提供影音的组件,尤其是通过启用组件中可选的功能来提供最广泛的编解码器支持。这个软件库只适用于 CentOS 6。启用 backports 软件库有可能取替 base 组件。软件库配置文件已收录于:http://pkgrepo.linuxtech.net/el6/release/linuxtech.repo 。截至 2018 年 5 月 2 日的检查,主软件库内的组件在 2016 或 2017 年都未曾被更新,而 testing 软件库内只有两个组件是 2015 后更新的,因此请谨慎地选用它们,因为你有可能会采用含有已知安全性漏洞的组件。切勿尝试在 CentOS 7 上采用此软件库,这是行不通的。
nux-dextop ——(见 http://li.nux.ro/repos.html )为 EL6 及 7 提供以桌面及多媒体为导向的组件。它收录了大量如 Ardour 等图像化软件,亦有 Cone 等文字软件。依赖 EPEL 但不会复盖 base。nux-dextop 不提供 CentOS 8 用的软件库,而你不应尝试在 CentOS 8 下采用 CentOS 7 的软件库。如果你需要 CentOS 8 的多媒体组件,请考虑 rpmfusion。现有的 nux-dextop 用户可考虑迁转到 rpmfusion。
IUS Repo ——(见 https://ius.io/ —— http://lists.centos.org/pipermail/centos-docs/2009-November/003730.html )「提供『最新版的上游 PHP、Python、MySQL 』。它获得 Rackspace 的内部工作所赞助(但没有官方支持)。」请参阅它的客户端使用指南来安装 ius-release 组件并设置软件库。请参阅它的常见问题集,当中很坦率地探讨利与弊。这里 有一个相对中肯的评论对比 IUS 及 SCL。
agr-free ——(见 http://rpm.agresearch.co.nz/ )它只为 x86_64 结构上的 EL6 发行版本提供生物信息学的软件。该软件库由纽西兰的 AgResearch 所管理,内里含有大量生物信息学软件及依赖性组件供选择,它们是 AgResearch 内的科学家所应用的软件。该软件库缺省是与 EPEL 软件库一起应用的。详情请参阅它的 主页。同样的,这不适用于 CentOS 7。
GhettoForge ——(见 http://GhettoForge.org/ )为 EL7 及 6 提供其它第三方软件库所没有的组件及较新版的组件。会盖过 base 的组件都收藏于 [gf-plus] 软件库。请参阅 GhettoForge wiki 内的应用部份了解如何协调地运用 gf-plus 组件。请加入 freenode IRC 的 #ghettoforge 频道寻求支持。
Psychotic Ninja ——(见 http://wiki.psychotic.ninja/index.php )它为 Red Hat 企业级 Linux 及其再发行版本如 CentOS Linux、Scientific Linux、Springdale、Oracle Linux 等提供组件。它的目标是为企业级 Linux 7 提供高质素,而现时未收录于 EL 或其它第三方软件库的组件。
RPM Fusion Repository ——(见 http://rpmfusion.org/ )为 EL6 及 Fedora 提供「Fedora Project 或 Red Hat 所不愿发行的软件」。获支持的结构包括 x86_64、aarch64 及 ppc64le。此软件库依赖 EPEL 提供某些组件。它的政策是不要取代 RHEL 或 EPEL 组件。RPM Fusion 用户的邮件列表:https://lists.rpmfusion.org。请汇报错误到 https://bugzilla.rpmfusion.org
Harbottle ——(见 https://gitlab.com/harbottle/harbottle-main )这个 yum 软件库提供了一些未被标准软件库所收录的 RPM 档。这些组件适用于 CentOS 7 及 CentOS 8(还有 RHEL、Oracle Linux 等)。它还为额外 Perl 模块,额外 Python 模块,额外 Ruby Gems,Omnibus 组件及 Wine 32 位元组件提供独立的软件库。
The SerNet Samba Repository ——(见 http://www.sernet.de/en/samba/ )一个德国网站,为 CentOS 7 及 6 提供 samba 的组件,及大量其它组件。某些用户汇报能成功地使用这些组件,但推荐小心使用。请留意只有 4.2 及以下版本的 samba 是免费的,较新版须要付年费才能访问。
Trinity Desktop Environment (TDE) ——(见 http://www.TrinityDesktop.org/about.php )为 EL5、6 及 7 提供组件来支持以 KDE 3.5 方式操作的桌面。备有 EL5、6 及 7 的 yum 软件库。他们亦有专用的支持资源可查询有关 Trinity 的问题。
Remi Repository ——(见 http://rpms.remirepo.net/ )Remi Collet 维护大量组件,包括最新版的 PHP 等。他在 http://blog.remirepo.net/pages/English-FAQ 收录了一个常见问题集。请留意这是一系列的软件库,而采用 -safe 系列可确保 CentOS Linux 发行版本的基本组件不会被复盖或取代。然而,请留意此软件库与其它第三方软件库不能和平共存 —— 举例说,Remi 的组件内含有 Obsoletes: 句式,并会自动以 .remi 版本取替来自 IUS 及 Webtatic 软件库的组件。这有可能是不理想的做法,因此采用此软件库时要小心。
ZFS On Linux ——(见 http://www.zfsonlinux.org/)ZFS on Linux 计划把 OpenZFS 应用在 Linux 环境下。纵使高度精密及极受欢迎,此文件系统并未受 RedHat/CentOS 测试,也不获支持,因此一如使用其它第三方软件库,后果自付。
Linux Forensics Tools Repository - LiFTeR —— (See https://forensics.cert.org/)CERT Linux Forensics Tools 软件库为网络鉴证取证及分析人仕提供很多有用的组件。它亦收藏了不少过往由 RPMForge 及 RepoForge 软件库提供的有用组件。
0.2. 已知的问题软件库
下列软件库会在只提供少量甚至没有警告的情况下大规模地取替 base 组件,导致已知的问题出现。请极度谨慎地选择应否采用这些软件库,并考虑改用上述软件库替换。
Atomic Repo ——(见 https://www.atomicorp.com/channels/ )Atomicorp 拥有商业产品及免费软件库,内中有较新的 PHP、MySQL 和大量其它组件。在其它地方未必可以找到的组件包括 hunspell、snort 及 zabbix。他们亦提供 Plesk。
|
请额外留意 Atomic 的软件库在安装后会把软件库缺省为启用的,并会在更新 release 组件时覆盖用户的改动而不设通知。安装时,Atomic 将会取替很多核心组件。很多 CentOS 用户在启用此软件库后都遇上问题,这事实在寻找论坛可见一班。单单删除来自此软件库的组件亦有可能令系统不稳定。我们已经警告你。 |
City-Fan —— 为不同版本的 CentOS/RHEL 提供软件库,但似乎全部倾向未有警告便盖过来自 base/updates 的套件。当中计有 libcurl 等系统程式库,一经安装后便会导致 yum 失效!切勿选用。
|
请 额外留意 City-Fan 软件库,因为它们安装后会预设为启用的。City-Fan 在安装后 将会 取替大量 core 套件,而这些套件的结构与 CentOS 不同,令你近乎无法干净利落地移除它们。就算 移除 源自此软件库的套件后仍有机会令系统不稳定。我们已经警告你。 |
Jason Litka - Utter Ramblings Repository —— 似乎已不再被维护。
RPMForge/RepoForge —— 这计划已终止。不被维护。不要使用。
Webtatic Repo —— 提供较新版的 PHP、MySQL 及其它组件。IUS 或 SCL 是较佳的选择。
反面教材
|
警告: 请勿做以下的事情。 |
有某人在 IRC 频道内求问设置第三方 yum 软件库的指引。随便遵从外部文档的指引是个坏主意。下面枚举了一些不正确的软件库设置:
- 把版本及结构硬编码:'baseurl=http: //ftp.belnet.be/packages/dries.ulyssis.org/redhat/el4/en/i386/dries/RPMS'。这样 $releasever 及 $basearch 皆是硬编码。对比较正规的:'baseurl=http: //apt.sw.be/redhat/el$releasever/en/$basearch/dag'。硬编码局限此方法于 i386 平台上的 CentOS 4。
- 混合使用 Fedora 及 CentOS 的软件库:留意 'name=Fedora' 而不是 'name=CentOS.(某版本)'。Fedora 的软件库很大机会不能与 CentOS 兼容。其它出自同一上游源代码的企业级 Linux 的软件库或许会兼容性较高,但使用时仍需小心。
- 运作与你的 CentOS 版本不吻合的软件库!安装软件库前,请确保它是合适的版本,否则不正常的现像可能会出现。
切勿模仿这些例子。在你更改(并有可能毁坏)系统内的 yum 设置前,请先对别人的推荐作出批判性的鉴定及思考。
Translation of revision 250