个人认为,linux发行版的选择只关乎与该发行版的设计理念与自己的相符度,和其他学习啊什么的关系不大。同一个内核,大部分东西都差不多,没什么区别
- ubuntu:桌面应用为主的GNU/Linux操作系统;意思是我的存在是因为大家的存在;Ubuntu是基于Debian发布版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本,每2年发布一个LTS长期支持版本; 开发理念:Ubuntu计划强调易用性和国际化,以便能为尽可能多的人所用。(来自wiki)
- centos Redhat要在RHEL之外, 另外资助搞一个Fedora的原因, 就是为了让一些新的技术/软件, 先进入到Fedora的社区中, 等这些新的软件经过了社区的检验, 迭代之后, 确保了稳定性之后才会进入到RHEL中的
因为老版本的软件虽然没有一些新的特性, 没有特别fancy的效果, 但是, 毕竟经过了多年的实践检验, 是切实可用的.并且, 除了Fedora的试验场之外, Redhat还有大量的QA员工来做对每一个RHEL的发布做大量的测试(最终都会进入到CentOS), 还有一个硬件兼容性的团队来专门保证每个RHEL的硬件兼容性, 这些都是RHEL/CentOS作为一个生产系统的操作系统所必须的, 所有的这一切, 都是为了追求生产系统的稳定可靠.
Redhat内部是把团队分成Project 和Product两部分的
project的team就专门工作在开源社区, 自己搞自己的
product team则会基于某个project的release再进行测试(功能测试, 性能测试, 兼容性测试等), backport fix,文档等工作, 最后作为产品提供给付费客户
举个例子, Hibernate 社区版发布了4.0, 但是产品化的hibernate并不会跟进的, 还会停留在3.5
等4.0的社区版经过了一段时间的用户反馈(这个的反馈是很高效的, 因为社区中用的人很多, 社区的JIRA基本上每天都会有很多JIRA被open, 包括bug, 不兼容等等问题), 然后发布4.0.1, 再反馈, 再发布4.0.2, 再反馈, 再发布4.0.3这时候, 经过了几次的社区反馈加bug fix release的迭代之后, 基本上4.0这个大版本的问题就会都被发现了, 然后, product team就开始介入了, 他们还会有专门的QA再做更详尽的测试, 然后按照不同的需求, 看是可以只做bug fix backport 还是需要把某些用户需要的new feature也port到老的3.5上, 然后发布一个3.5.1 的产品
可以看到, 一个产品的艰辛诞生历程.....
所以, 如果你们有足够的人力和资源来对新的版本的软件来进行足够的测试, 并且再发现问题的时候有能力能自己fix(假设都是使用的开源软件), 那么追求新版本没有问题(但是就不要说节省成本了, 这些是需要消耗大量成本的), 如果没有这个能力, 还是老老实实使用别人的成果吧(本段摘抄字知乎 Strong Liu 的回答http://www.zhihu.com/question/29191794)