[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

CentOS 何时才不算是 CentOS

1. 你说我的 CentOS 不是 CentOS 是什么意思?

我被转介到这页,因为其它人说我的 CentOS 版本不是 CentOS。你可以解释一下吗?

(首先,如有得罪之处,敬请见谅 —— 我们只想通过明确遘通来节省时间!)

我们发现有很多人声称提供 CentOS,但事实上只是「建基」于 CentOS。这些系统已根据供应者的特定用途而被修改。Linux VPS(虚拟个人服务器)供应商有时会采用 CPanel 或 Plesk 等网站寄存软件,或是 Virtuozzo 或 OpenVZ 等虚拟化软件作出相关修改。

这些软件计划以 CentOS 作为基础发行版本,但添加或修改 CentOS 发行的核心组件。就以 OpenVZ 为例,它须要一个不是由 CentOS 提供的内核,而 CPanel 就提供自己改版的 Apache 及 PHP。

尽管这个做法能满足供应者的需要,当你在 CentOS 的官方及非官方渠道寻求协助时却会带来问题。

不少提供协助的人们从过往的经验及挫败中发现,某些求助的用户采用了「改版」的 CentOS,而相关的软件及配置文件与预期的有很大差异。一个常见的答复可能是「你应该在 {某路径} 的文件内将 {这设置} 改为 {那设置},以便修正问题……」,但该文件却不存于所指定的路径,又或者文件内容与 CentOS 所发行的不符。

这不单令提供支持变得十分费力,更有可能因为遵从我们的推荐而损坏供应商的安装。

因此,要是你认为你所采用的 CentOS 已被 VPS 供应商或网页寄存商修改,敬请 向他们寻求协助。

要是你的问题涉及特定软件,例如 PHP 或 Apache,你也可考虑在专用支持渠道求助。

2. 我如何判断我拥有 CentOS 还是「改版」CentOS?

你可以从数方面快速检查你是否拥有 CentOS。请核对下列各点来确定你拥有 CentOS,而不是被修改版本:

2.1. 内核

CentOS 的内核永远使用一致的方法来命名。请使用 uname -r 这个指令来检查你在使用哪个内核。

CentOS 5 机器应该输出 2.6.18-419.el5,CentOS 6 应该输出 2.6.32-642.15.1.el6,而 CentOS 7 应输出 3.10.0-514.10.2.el7(这些是截至 2017-03-19 的版本)。内核的版本会经常采用 kernelversion-kernelrelease.centosrelease 这个结构。以 CentOS 5 为例,kernelversion 必定是 2.6.18,CentOS 6 是 2.6.32,CentOS 7 是 3.10.0,并且在每个发行版本的生命周期中维持不变。kernelrelease 普遍是单一个数目或是三个以点号分隔的数目。centosrelease 在 CentOS 5 上必定是 el5,CentOS 6 是 el6,CentOS 7 是 el7

如果你的内核版本内含有 stab 这个符串及看似 2.6.18-92.1.13.el5.028stab059.6,那么你拥有一个由你的供应商所提供,而非 CentOS 计划创建的内核。stab 意味著该内核源自以 OpenVZ 为基础的虚拟化计划。它不是 CentOS 所提供的内核,因此你所使用的并非 CentOS,而很可能是被修改版本。

2.2. 每间断地访问 CentOS 计划发行的更新

一个正版的 CentOS 系统可以在任何时候利用 CentOS 的镜像发布系统免费进行更新。这个步骤一般是通过以 root 的身份执行 yum update 指令来完成。我们特别提及这个要求是因为安全性修正是不会同期发行的,因此 CentOS 计划亦会随着这个组件被创建起来及通过测试而将这些更新发行在镜像上。详情请参阅这里的讨论

2.3. Yum 配置文件

CentOS 的另一个核心部份就是 yum 指令的设置。在一台正版的 CentOS 系统上,yum 设置会指向 CentOS 镜像。要检查这点,执行 rpm -qV yumrpm -qV centos-release 这两个指令。rpm -qV 这个指令会检查一个 RPM 组件的内容,并显示任何涉及该组件内的文件的改动。

在一个标准的 CentOS 发行版本上,rpm -qV 这个指令应该不会返回任何输出。如果这些指令返回输出,那应有些文件曾被修改,而你很大机会不是在使用正版的 CentOS。惯常出现的改动包括排除某些组件(多数做在 /etc/yum.conf 里),或者取代标准的 CentOS 软件库(这些是在 /etc/yum.repos.d/CentOS-Base.repo 内定义的)。

2.4. 被更换的核心组件

很多以 CentOS 为基础的 VPS 更换某些核心组件。Perl、Apache、PHP 及 MySQL 是常见的例子。下游供应商有时会在 yum 配置文件为某些组件加入 exclude=,执行以下指令可显示它们出来:

grep -ri exclude /etc/yum.*

假如你是由于不能安装(举个例说)某个 Perl 或 PHP 模块而被转介到这页,你很大机会拥有该组件的非标准版本。

要引证这个问题,你应该先检查问题组件的版本,然后比较 CentOS 的 baseupdates 软件库内所提供的组件版本。譬如说,CentOS 5 的各个组件版本分别为 Apache 2.2.3、PHP 5.1.6 及 Perl 5.8.8;CentOS 6 的是 Apache 2.2.15、php 5.3.3 及 perl 5.10.1;最后,CentOS 7 的是 Apache 2.4.6、php 5.4.16 及 perl 5.16.3。此外,你亦可以用 rpm -qV 来检查所安装的组件是否有文件被修改了。

3. 这又如何?既然它建基于 CentOS,为何你不会支持我?

如上所说,这些改版 CentOS 将发行版本的主要部份改掉。CentOS 团队没有参予在这些改动中,因此并不知道更改的内容或幅度。我们所提供的推荐都建基于使用 CentOS 计划提供的 CentOS 而累积的知识及经验。这些推荐有可能违反你的主机代管供应商的服务协议,甚至乎损坏你的系统。正因如此,我们不能为你提供支持。

4. 我已检查,并确定所采用的是 CentOS!

很好!有些 VPS 供应商 的确 提供未被修改的 CentOS,你可能是其中一位幸运者!请选用最方法的渠道寻求协助。要是你再度被指向此网页,请解释你已遵从此指引,并肯定机主没有修改你的安装。

5. 好,我没有 CentOS。现在怎样办?

基本上你有四个选择。

假若你的主机代管供应商声称提供 CentOS,第一个选择就是要求他们如此做。要不然,你可以找另一间提供 CentOS 的供应商。

如果你的问题涉及特定软件,请从专用的支持渠道求助。(例如 Freenode IRC 上的 ##php or #perl)

第三个选择就是沿用现有的非标准 CentOS 安装。但由于上述所解释的原因,这意味着你不能以 CentOS 社区作为支持。你必需与你的改版 CentOS 供应商协商获取支持。

第四个选择就是亲自修改你的非标准 CentOS 安装,令它看似一台正版的 CentOS 安装。zh/TipsAndTricks/BrokenVserver 页里提供了更多有关如何这样做的信息。假如你因损坏系统或违反服务协议而导致数据或金钱上的损失,我们不会负责任。

Translation of revision 22


2023-09-11 07:23