- 软件源资源匮乏
作为一个专业的服务器系统,RHEL系统理论上每一个软件包都有RedHat内部的人员负责维护,这个维护包括长期(和系统生命周期一样长)的开发、更新、测试、运维等。也就是说你能从RHEL系统源上获得的每一个软件包,出现问题都可以找RedHat负责。所以RHEL不可能无限制的扩充自己的软件库,不能信手拈来想加什么就加什么,因为加进来是要负责的,是对应相应的人力成本的。所以软件源的规模必须受到限制,企业级用户特别需要的才会有,可有可无的都要评估一下哪个可以加进来哪个不要。这绝对不是普通的桌面用户群所期望的,因为普通的桌面用户群体的宗旨是“多多益善,我可以忍受不严重的bug,但是你不能没有我要的功能软件”。比如你如果没有可以解码播放rmvb等格式的播放器,那我是肯定忍不了的。但是如果你提供,只是有一点点广告或者有一点bug,那我是没问题的,比完全没有要强百倍。
而CentOS的软件源的匮乏程度比RHEL可能强一点,毕竟它可以不需要对“甲方爸爸”负责,所以稍微大胆点多加点东西是能理解的。但是受到系统老旧程度和人手限制,能加的也有限。毕竟很多人只是用CentOS,但是肯为CentOS打包维护更多软件的人凤毛麟角。
- 软件“老”而且会越来越“老”
一个服务器系统的生存周期非常长,动不动就是十年起步。组成系统的软件在系统构建初期就订下了基线版本,比如在RHEL-7.0初次构建的时候选择的gcc版本是4.8,那么即使到现在(2021年11月)上游最新的gcc版本已经更新了11.2,RHEL-7最新的系统上的gcc仍然是基于的4.8版本。虽然应用户需求,中间backport了很多修复性和新特性的patch,但是单论特性肯定还是不能和11.2版本比的。这就是为什么说软件老,且越来越老的原因。
那么作为一个普通的桌面用户,如果你想使用新版gcc上的某些特性,你会发现自己既没有能力完美的单独更新系统的gcc到最新(因为受到其它软件包依赖的限制),也极少有人有能力单独把需要的新特性所对应的代码backport到老版本上来增强特性。这样的窘境就完全限制住了用户所能“享受”的功能和特性的范围。系统已经生存的时间越久,被限制的越死。
CentOS和RHEL一样的,即使CentOS的人有意翻新一些软件的版本,它们绝大部分情况下也无能为力,因为CentOS还要随着RHEL走呢,所以没法偏离的太远,否则它自己没有那么多人力单独维护。
综上所述,"CentOS软件那么老为什么大家还要用它?"这个问题中的“大家”就包括了两类人。一类是没有必要用但是瞎跟风才用的。另一类是需要用的。
- 没必要用但是瞎跟风用的人群
这类人多以新人为主,因为RHEL(及其下游系统)作为现在最主流的服务器系统,每一个想要入行Linux的人基本都会被告知应该从此学起,特别是网上众多的教程、帖子也多是围绕RHEL类系统。而RHEL系统又是收费的,一般人用不到,于是免费的CentOS作为RHEL的克隆版就被不明所以的新人误以为是“免费的Linux旗舰版”。好像有一种“我花4000元买的课程免费给大家下载”一样的“不赚白不赚”的喜悦。
殊不知RHEL或者说CentOS对于普通的桌面用户来说“又老又资源匮乏”,所以这类用户用久了之后就会发现,周围仍然有很多人在不明所以的安利CentOS类系统,但是自己用起来又觉得“不好用”,于是在心底里产生了“CentOS软件那么老为什么大家还要用它?”的疑问。
但是这个问题为什么没有形成规模,可能是因为大部分人迫于周围很多人都在说CentOS好,而自己如果体会不出CentOS的好,特别是还问出来,那会显得自己很Low。
- 需要用的人群
作为专业的服务器操作系统,RHEL确实是值得服务器用户使用的。企业级用户就不用说了,某些个人用户也有需要使用面向服务器的操作系统的时候。虽然我上面说RHEL/CentOS类的系统对于普通桌面用户来说不好使,那是因为普通桌面用户最主要的需求是系统没有严重bug的情况下提供越多越新的功能越好。但是需要服务器系统的用户的需求则是系统能持续稳定运行的时间越长越好。
比如我有一个笔记本电脑,我平时用它办公、浏览网页、看视频、打游戏等,我对它上面的系统的需求就是:
- 给我提供尽可能多的软件资源能让我选
- 让我能不费力的跟着享受当前非常新的很多软件特性
- 即使某个软件或某次更新有bug,但系统只要维持1天以上不死机就可接受。因为基本上我晚上睡觉就关机了,坚持到下次修复没什么困难。
同时我在远处的某个地方还有一台工作机,这个工作机我需要它跑很多定时执行的任务,需要它长期维持某些程序的运行。这个“长期”可不是一两天的事,甚至一两个星期都不行,而是以年甚至更久为单位。如果能做到一次开机到死不用重启最好。
我给这个工作机装的一个不算新的RHEL8系统,除了非公司大楼停电,它基本没死机重启过。而上面我跑了很多虚拟机,我在这些虚拟机里面装了各种系统,有能支持更多新特性的Fedora系统,有比较稳定的CentOS系统等。而这个host主机上的系统只要能维持稳定,并支持我运行这些虚拟机(或容器)就可以。