This is really, really bad for the majority of us using CentOS.(这对于使用CentOS的大部分人来说都太糟糕了。)
——用户Matt Phelps在CentOS项目邮件列表上说道
12月8号,Red Hat(红帽)公司和CentOS官方同时发布了消息,决定把CentOS发行版本切换为CentOS Stream发行版本。2021年后,CentOS 8不再受到官方支持。另外,最重要的是,CentOS Stream将会成为RHEL(Red Hat Enterprise Linux)——红帽开发的商业版本——的上游,而不是原来的下游。CentOS项目的方向发生了巨大的变化。这个决定引起了社区和用户的激烈讨论,并受到了用户的批评。有人甚至做了一个和CentOS官网界面相仿的网页(https://centos.rip/)来嘲讽红帽公司。
因为协议的限制,Linux发行版本几乎都会提供源码,即使是开源领域的巨头红帽也不例外。RHEL是红帽公司推出的商业版本,不过,红帽公司并没有发布所有的源码修改历史记录,只是发布了最终修改后的代码,但任何人都可以使用这份代码。
相比Fedora,RHEL完全由红帽公司自己开发维护。开发者可以从红帽获取免费获取授权使用RHEL,但是商业使用以及获取商业支持就需要支付一笔费用。RHEL的发布周期比Fedora更长,运行上也更加稳定。RHEL每年为红帽带来了可观的收入。
既然RHEL的源码是公开的、免费的,而且它的质量又这么高,基于它的源码构建一个发行版本的想法就是非常自然的。2004年,CentOS项目出世了。同时创建的还有Scientific Linux和Oracle Linux项目,前者已经停止了运作,后者并没有CentOS那样高的知名度。
2014年,CentOS接受红帽公司的赞助。红帽公司取得了CentOS项目商标的所有权,并招聘了大部分核心开发者,这些开发者在内部独立于RHEL部门。现在,CentOS的精英领导层都是红帽公司的员工,因此拥有对社区的绝对影响力。从这时起,CentOS项目就不再是一个纯粹的社区驱动的项目了。
开源领域治理的模式常见的有两种——仁慈的独裁者和精英政治,CentOS项目使用的是后者。也就是由几个精英来管理整个项目,大部分情形下依靠投票来解决分歧。
CentOS Stream是随着CentOS 8一起推出的发行版本。它和CentOS最大的区别是滚动发行,也就是说没有一个大版本,而是只有定期发布的小版本。同时这也意味着开发模式的转变,从以前的瀑布转向了敏捷。
12月8号以后,CentOS Stream和之前的CentOS又多了一项不同,可以说是根本性的改变。取消CentOS,把CentOS Stream发行版本作为RHEL的上游,而这恰恰是CentOS项目成立的初衷——使用一个商业公司支持的稳定发行版本。CentOS现在的角色非常类似于Fedora,可能会比Fedora稍微稳定一些。如果用测试阶段来说明的话,Fedora是阿尔法测试,CentOS是贝塔测试,那么RHEL才是最终版本。
随着消息的发布,不满的意见出现在了各个地方:官方的邮件列表、Hacker News、Slashdot等,各个新闻媒体也发布了报道。可以说这则消息激起了众怒。
CentOS项目所做的决定影响了许多人,主要是用户,还有开发者、公司。
刚刚把CentOS 7升级到的CentOS 8的系统管理员肯定要暴跳如雷了。升级并不是一件容易的事情,而这本来可以推迟到几年之后,准确地说,最长十年。
继续使用CentOS 8,就是在使用一个不再维护的系统,这意味着不安全,意味着使用不了新发布的软件。切换到CentOS Stream,需要做一些工作,官方承诺的是工作量会“非常小”。但已经有用户在邮件列表上报告遇到了问题。切换到CentOS Stream,还意味着,可能在使用一个不太稳定的系统,也就是一个贝塔测试版本。经过过去这些年的检验,用户已经非常认可红帽公司的开发测试能力,只有它们发布的才能称为最终版本。只有一家公司的才能被认为稳定的版本,这是否意味着开源就是不稳定的代名词?
除了切换到其它项目外,用户还有一个选择。既然这是一个开源项目,他们可以投入大量的工作到CentOS的测试和修复bug中,从而使得它成为一个和RHEL一样稳定的系统。
在CentOS项目已经和红帽公司确定了合作关系后,开发者就已经有了和它的利益绑定关系。因此,在一个号称开源的项目运行中做出对公司有利的决定是再正常不过了,因为这个开源项目的领导层几乎都是红帽公司的员工。
除了红帽公司的员工,还有一些社区的开发人员。他们的态度也是很重要的,是支持这次转变,还是投向其它项目,毕竟每个人的时间都是很宝贵的。
看起来,红帽公司是这次转变的最大赢家。通过切换到CentOS Stream,用户失去了一个基于RHEL的稳定发行版本。为了保持业务稳定、正常运行,以及减少一些工作量,他们中的一部分可能会选择使用付费的RHEL发行版本。这是它非常乐意见到的。
不过,也不排除一种情况。当用户对项目普遍感到不满时,项目就有可能失败。用户可能会转投另一个项目,Scientific Linux项目已经停止维护了,但Oracle Linux还在。另外,CentOS早期的创始人Gregory Kurtzer——离开CentOS项目——已经公开宣布,他要创建Rocky Linux——一个用于取代CentOS的新项目,到目前为止,Github上只有一个空的仓库。
鉴于红帽公司的声誉会因为这次事件受损,Ubuntu发行版本背后的公司Canonical可能会因此受益。同样是开源领域的公司,红帽公司和Canonical长期以来都是竞争关系。Ubuntu基于Debian,CentOS基于Fedora,但两者都是基于Linux生态。长期以来,Canonical的商业化都不顺利,没有红帽公司那样可观的收入。据资料显示,2018年时,Canonical的收入只有1亿美元,而红帽公司的收入高达100亿美元。
从这次的事件我们可以看到,当开源项目成为了大公司手中的累赘后,是多么容易被抛弃。大公司支持开源项目,是为了自己的利益,而不是别人的利益,尤其不是为了那些不付费的用户的利益。CentOS Stream会不会成为Stream的未来要取决于开发者、用户和公司的态度。也许舆论的反对会促使红帽公司撤回它的决定,也许决定仍然会被推行,也许一个新的项目将会横空出世。但如果不根本性地解决没有大公司参与的开源项目测试不够充分的问题,那么结果并没有被改变,而只是被推迟。