我第一个接触过的 Linux 是 Fedora Core 4。当时读大一,刚买了电脑,在软件店逛的时候看到了它。当时只是觉得 68 元买一盒正版软件,里面7、8张光盘真是太值了……
我用了整整一天,按照说明书的小册子终于把它成功装在电脑上。我很开心的玩了几天,然后就把它删了,因为它自带的小游戏太无聊……
再之后过了大概半年,我忘了究竟是什么原因,可能是上课老师提到这玩意多牛X,也可能是上网看了热血青年 Linus葛娃子不可一世的帖子,我又一次扎进 Linux 的大泡子,这一扎就直到现在。
要说喜欢的还是 Fedora,
后来工作之后,一直是在 RHEL 系的 Linux 下做运维。 因为平时在这类发行版下经验积累,让我不加思索的继续用着 RHEL/CentOS。
相信线上系统选择什么发行版这个问题很多做运维的新人都纠结过。
今天无意间在知乎看到这个问题: 服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?
我自己也想了一下,发现我还是会选择 RHEL 系的发行版。一则是熟悉、二是 RHEL 确实稳定,在我工作的这些年,只遇到过一次 RHEL 跟 E5 某个版本的 CPU 出现兼容性的问题,不过当时 Redhat 也及时更新了补丁。话说 RHEL 的补丁更新确实要比它家迅速。我记得前年 Bash 漏洞爆出的时候,我看到新闻的当日,登录 Redhat 的 RHN,就已经提供补丁下载了。
Ubuntu/Debian 的优势
- apt-get 确实比 yum 好用。
- 软件包数量多,功能性版本更新快。
- 因为上条,研发使用 Ubuntu 比较多,环境能无缝切换。
- Ubuntu 对 Linux 初学者非常友好。
Ubuntu/Debian 的劣势
- Ubuntu 补丁更新慢,官方只管放包不管修
- Debian 生命周期不固定,新版本发布以后,上个版本再维护18个月,一般生命周期在5年。当生命周期过了以后,就没有安全补丁,你的服务器就会裸奔或需要重新安装系统。
- Ubuntu 的 LTS 版生命周期是5年。
- Debian 由于有版权上的考虑和代码纯洁性的洁癖,一些硬件驱动和软件被删除了,导致安装过程有问题。比如 Dell 服务器上,大量使用的忘开 BroadCom,就驱动不了。
- Debian 的 LTS 支持,不是由 Debian 官网安全团队维护的,而是由其他志愿者维护的,工作效率和质量是否有保障还不知道。
- Ubuntu 社区经常搞些莫名其妙的东西,而且一段时间之后可能就不用了。
RHEL/CentOS 的优势
- 受鸟哥等 RH 系列 Linux 书籍的影响,国内运维人员对 RH 的系统最熟悉。如果你是一个工程师,熟悉了 CentOS/Redhat,找工作更容易。如果你是一个企业老板,相对也容易招聘到熟悉 CentOS/Redhat的工程师。
- CentOS/RHEL 的生命周期是7年,基本可以覆盖硬件的生命周期。RedHat 5、RedHat 6的生命周期,延长到10年。
- RedHat 是一个值得尊敬的开源公司,拥有一批 Linux 内核方面如雷贯耳的大牛。长期以来对 Linux 内核的贡献程度都是最多的。可以说,如果一个 Linux 方面的问题,RedHat 搞不定,那么很少有其他公司能搞定了。
- CentOS/RHEL 对硬件支持很好,主流硬件厂商早就将服务器拿过去测试,一般不存在硬件兼容性问题。
- 大量商业软件,比如 Oracle,都是针对 Redhat 认证的,有大量的帮助文档和使用说明,有良好的技术支持。出了问题,也容易在网上找到类似的答案和经验。
- CentOS 是 Redhat 的克隆版,如果需要可随时平滑切换到 Redhat,从而享受 Redhat 的厂商服务支持。
- Redhat 对安全漏洞的响应更及时。
- RHCE 的培训,相对完善,认同程度高。
- CentOS/RHEL 的批量安装更方便。
RHEL/CentOS 的劣势
- 由于生命周期长,线上系统往往版本老,最近的软件在 RH 的官方库里找不到。只能自己编译。还得专人负责补丁更新。
- 如果研发多使用 Ubuntu,线上生成环境使用 RHEL,环境的变更会需要更多的调试,大幅影响研发效率。