服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

来自

http://www.zhihu.com/question/19599986

 

服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?

想选择一个 Linux 发行版作为服务器。有没有什么推荐的?
 
//update at 2014-06-06 主要将一些散落在各处的评论,我觉得有价值的,给搬运过来。
我在这个问题下的某个回答的评论居然被删除了!!!!!
我之前根本没想回答这个问题,虽然像目前第一位的 Rio 的回答离谱的一塌糊涂。我也只是赞了一下彭勇的答案。

我被删的评论如下:
“不会用就别怪系统不好。推荐 Debian/Ubuntu 跑 Server 是一件很不负责的事情。”

理由是不友善内容?这上面哪个字不友善了?我骂人了么?我讥讽人了么?我指出别人不会用就叫不友善?我开不了飞机,不会开坦克,别人指出我这个技能不足就叫不友善?

既然这样我就好好的说说,题主的问题是服务器采用什么发行版本!所以下面的讨论都是针对服务器的。

首先的首先,我想请各位玩家,你们不要自己最近新玩上什么就觉得什么好,然后大肆的推荐什么好不好!负点责任好不好!人家是服务器,有些时候选错一个发行版本会痛苦死一批人!
是,你现在终于发现有个版本叫 Ubuntu 了,好爽啊,那么多包,随便 apt-get , 3万个包躺在仓库里面不用编译。好爽啊!几乎所有软件都有最新版本用!唉?过两天你发现 Ubuntu 原来是从 Debian 来的,Debian 才叫牛啊,完全社区运作,包的数量一点都不少啊。再过两天发现 Gentoo 啦,哇塞,牛啊!性能的极致优化,编译编译再编译,configure , configure 再 configure ,精简到极致。再过两天 Gentoo 玩腻了,不就是编译么~ 唉? 原来还有 Arch 啊,这个不错啊,想编译的编译,不想编译的也有默认包。然后2个月没 pacman 更新过的系统,更新一下全挂了。
你的意识形态,走在任何一个阶段都认为这个阶段是最好的选择。但事实并不是这样的,这只是你的兴趣而已。

要讨论这个问题,先要知道两大发行版本的区别在哪里。RedHat 和 Debian。

一、版本定义
RedHat 是由红帽公司维护的发行版本。其 RedHat 9 是最后一个以 RedHat 为名的发行版本。在 RH9 之后,版本开始分为社区维护的 Fedora 和 企业使用的 EL。而我们所说的 CentOS X 就是从 RHEL X 编译过来的。所以本质上,CentOS 的目标用户,就是企业的服务器。
CentOS 是有 release 概念的,何为 release 概念?当某个版本定下时,其绝大多数软件包,包括 Kernel 在内,都已经确定了版本。在该 release 下,没有特殊情况,大版本号不发生变化。

举例,CentOS 6 某个 Kernel 版本:
2.6.32-358.el6.x86_64 

2.6.32 为 kernel 版本号,358 为打包版本号,打包版本表示该包第几次打包。对于 RHEL 来说,一个 kernel 打包个 500 700 次是很正常的事情。
再比如一些软件,1.1.3 是版本,如果该软件自身的定义,最后一位是 bugfix 版本,倒数第二位是功能版本,那么你在 RHEL 里面,很少会看到功能更新!通常只会看到 bugfix 更新!也就是只会看到小版本号更新。

Debian 是由社区维护、贡献的发行版本,其从选包、打包、都是由社区组织,分散行动的。
Debian 是没有真正意义的 release 概念的。Debian 有众多仓库,stable,testing,unstable ,experimental. Debian 组织系统的方式是,一个软件先进入 experimental, 放一段时间,有 bug 修 bug,没 bug 了,过段时间挪入 unstable ,如此循环最终挪到 stable 里面。所以在这种情况下,Debian 的系统中,是没有一个稳定版本的概念。今天你用 kernel 3.2.1-87 , 明天就给你更新到 kernel 3.3.2-5 。
-------- 补充内容 -------
我觉得我已经把我所谓的 release 概念解释的很清楚了,但是评论里面还有人在和我说 Debian 是有 release。我说的 release 不是那种自己划个时间线,叫个名字的概念。而是版本维护的概念。
@刘世伟 说 Debian 也是这样的,那好吧,我证明给你看一下。
你从这里 Debian -- 在 wheezy 中的 linux-image-3.2.0-4-amd64 软件包详细信息 可以拿到现在 Debian stable 的 Linux kernel 打包,下载下来,解压缩,在

usr/share/doc/linux-image-3.2.0-4-amd64 目录下面有一个 changelog.Debian ,grep 一下:

grep wheezy changelog.Debian

linux (3.2.57-3) wheezy; urgency=medium

linux (3.2.57-2) wheezy; urgency=medium

linux (3.2.57-1) wheezy; urgency=medium

linux (3.2.54-2) wheezy; urgency=high

linux (3.2.54-1) wheezy; urgency=high

linux (3.2.53-2) wheezy; urgency=high

linux (3.2.53-1) wheezy; urgency=medium

linux (3.2.51-1) wheezy; urgency=low

linux (3.2.46-1+deb7u1) wheezy-security; urgency=low

linux (3.2.46-1) wheezy; urgency=low

linux (3.2.41-2+deb7u2) wheezy-security; urgency=high

linux (3.2.41-2+deb7u1) wheezy-security; urgency=high


起码在 wheezy 里面(stable) 里面,他从 3.2.41 走到了 3.2.57 , 同时…… 你们可以看到 每个版本也就打包 1-2 次,1-2次啊!而且 Debian 的 unstable 走到 stable 真的就是随便走走的。

linux (3.2.41-2+deb7u1) 是第一个 stable 版本,他的上一个版本是

linux (3.2.41-2) unstable ,好,3.2.41 第二次打包,加了一次 patch 就变成 stable 了

linux (3.2.41-1) unstable , 得,41 就打了一次

linux (3.2.39-2) unstable , 39 也就打两次。


从这个过程,你可以看出,Debian 总体上,还是在跟着 Kernel Source 的,为啥?没人啊!靠零散的人打 patch 还不如依赖 Kernel 本身的小版本更新。


RedHat 呢?

放一个 RHEL 6.4 的 Release Note



RHEL , 是不跟 kernel source 的小版本号的,自己整合 bugfix ,主要是安全相关的补丁。

为什么不跟 kernel source 呢?

主要还是目标用户的不同,就像我下面驱动这块要解释的。RHEL 的目标用户,是企业的 Server 的,他的 Kernel 里面,已经太多的东西被替换掉了。磁盘、网卡、各种各样的驱动。而 Kernel source 尽管只走小版本号,还是不太靠谱的。频繁的拿过来风险也大。

kernel 其实走到 2.6 以后,就没有一个真正稳定的概念了。反正就是一路往前走。当然 2.6.32.xx 的确是以 bugfix 为主的。但是这个量太大了,各种各样鸡毛蒜皮,RHEL 不是全都拿进来的。


你们一定要和我争论版本的问题,行,我不和你们争,Debian Stable 是有版本的~ 你们满意了?这种一个 kernel 打包 2次的状态,你们爱用就用好了。无所谓的。

但是有 版本的也只是 stable,testing 我可从来没见过。


说实话,我真的花了心思想多找一点 Debian 的信息,

11年进入 stable 的 6.0 , 最近确实还有一个更新,在 08 Apr 2014 。



09年发布的 lenny 也就是 5.0 ,根本已经连信息都很难找了。如果谁能找到 lenny 麻烦给一个 kernel 的 changelog


----- 补充结束 -------


而其继承者 Ubuntu,他是有 release 概念的,比如 9.04 ,10.06 等等,当他确定了 release 之后,他也不会在这个版本中做太大的版本变化。
但是问题是,他学到了 CentOS 的形,没有学到 CentOS 的精华。为什么?因为他又想追求新(一年两个版本),又想学人家吃服务器市场。这是完全相互矛盾的一件事情。
新,好办,只要跟着 Debian 走,experimental 仓库里面永远是最新的东西。拿过来,测试测试,重打包,发布!
稳定?(Ubuntu-Server) 这就难了,这需要不断的人力投入,Debian 自然不会帮你做这件事。自己做?Ubuntu 尝试了几次,目前我没看到成功。几乎都是草草放弃。


二、维护的力量
你们知道什么叫维护一个服务器用的发行版本么?
CentOS 4.0 2005-03-09
CentOS 4.9 2011-03-02
6年

Ubuntu 8.04 LTS April 24, 2008
Ubuntu 8.04.4 LTS January 28, 2010
1年9个月
你说好的 LTS 呢???

Ubuntu 10.04 LTS April 29, 2010
Ubuntu 10.04.4 LTS February 16, 2012
说好的 LTS 呢?
说 End of the Date 是3年整就是一个笑话,只要下个 release 一出,上个 release 收到的更新数量就可怜。

这才是 RedHat 的实力!你只要用我的发行版本,你不用有后顾之忧!Ubuntu 呢?开玩笑,即使是 LTS,在新版本出来以后 LTS 几乎不更新好么。补丁?从来没见过!也就是 LTS 的真正寿命也就 6个月-1年。你敢用?你敢给你们公司用?

某天某个软件爆出类似最近 openssl 的漏洞,用 CentOS 5 的用户第二天拿到了升级的 rpm。用 Debian 的用户收到了一个大版本更新,同时由于依赖关系必须更新 glibc, kernel 等等包。用 Ubuntu 的用户收到官方回复:“apt-get dist-upgrade”

这就是这几种发行版本在维护上的区别。

我们再说回 RHEL,很多人不懂,以为 Ubuntu “新”,RHEL “老” 。
你的服务器上有一块 Broadcom 的网卡,CentOS 6(2.6.32-358.el6.x86_64) 用户 modinfo 了一下

filename: /lib/modules/2.6.32-358.6.1.el6.x86_64/kernel/drivers/net/tg3.ko

firmware: tigon/tg3_tso5.bin

firmware: tigon/tg3_tso.bin

firmware: tigon/tg3.bin

version: 3.124


Debian testing(3.12-1) 用户 modinfo 了一下

filename: /lib/modules/3.12-1-amd64/kernel/drivers/net/ethernet/broadcom/tg3.ko

firmware: tigon/tg3_tso5.bin

firmware: tigon/tg3_tso.bin

firmware: tigon/tg3.bin

version: 3.133

你知道  的最新的 2.6.32 带的是哪个版本的 tg3 驱动么?

#define DRV_MODULE_VERSION "3.102"

#define DRV_MODULE_RELDATE "September 1, 2009"


CentOS “老”么?谁在将最新的驱动打入老的 kernel?谁在测试新驱动与老 kernel 的兼容性?RH啊!!这些都是人力啊,这些都是财力啊。

RH 在保证稳定、兼容的同时,尽可能的给服务器用户最全的设备匹配,最新的驱动支持。而这一切!你都不用担心稳定性、兼容性,因为 RH 没有更新大版本,没有带来 庞大 feature 的更新。

还有一个例子:
google RFS patch in linux kernel Linux 2.6.35 中的 RPS 功能。
这简直就是 Linux 服务器用户梦寐以求的功能好不好,你不用再担心多核CPU被浪费,你不用花很多钱买昂贵的多 irq 网卡。但是要 2.6.35 才有哦~

但是你不用担心,CentOS 6 (2.6.32) 已经将RPS整合进 2.6.32 的内核中了。
你看到Ubuntu做这种事情了?Ubuntu 在忙什么?在忙着今年再发一个版本啊!
RHEL 为什么做?因为他的用户是服务器!RPS 这种事情PC根本就用不到好不好。

我回到最开头。我也用 Ubuntu 做过产品,虽然不是服务器。但是最后的结果并不好。我听说过一个同事的上家公司用 Ubuntu 做服务器,千级别的量。聊了一下发现和我预测的差不多,痛苦不堪。

基本的痛苦流程是这样的
遇到一个问题->发现只有更新软件版本才能解决->这个自己当前的版本已经不提供该软件版本->发现自己编译不过,依赖太重->决定 dist-upgrade -> 发现需要跨度N个 release -> 测试 dist-upgrade -> 10台机器,2台成功,8台失败,失败的现象不同 -> 痛苦的解决各种问题-> 成功 dist-upgrade -> 发现公司业务程序需要重新编译->与开发人员沟通 解释升级的重要性 -> 开发人员重新调试、测试一些列用到的库的新版本->交付新版本

CentOS 用户基本是这样的:以下是最近真实对话
“xxx,新闻你看到了么 openssl 爆漏洞了”
“啊?不知道啊,我看看去”
----
puppet 操作一下 10分钟以后
“老板,补丁已经出来了,更新了,有 ssl 的 apache 都已经自动重启过了”

结束~

最后再解释一下,我之前的评论

“不会用就别怪系统不好。推荐 Debian/Ubuntu 跑 Server 是一件很不负责的事情。”

任何 Linux 发行版本,在理论上都是一样的。只不过操作有的方便,有的麻烦!是,yum 是比 apt 弱(这就是企业维护和社区维护的区别,企业自己维护不需要这么多功能)但是任何能在 A 发行版本上实现的效果,一定是能在 B 上实现的。你甚至可以按照玩 Gentoo 的思路玩 CentOS,编译么!你自己打 RPM 啊,你自己缩减依赖关系啊,你可以说麻烦,但是你不可能说不能实现。
所以,我还是要重说一遍:“不会用就别怪系统不好”!这不是歧视,这不是嘲讽,这是让你认清事实之后能把时间花在更加有用的地方!
第二句!“推荐 Debian/Ubuntu 跑 Server 是一件很不负责的事情。” 这是血和泪的教训!你不想听无所谓,但是总有一些人冒着要被戴“不友善”的帽子,也要告诉你这个事实!

我再来补充一句,没有不尊敬的意思。但是大多数圈内用 Gentoo -- 类似豆瓣还是 VeryCD 这样的公司,你们当时做出这个决策的人基本上都是把自己的 兴趣 > 公司 利益了。潜在的,这其实是一种不负责任的行为,会直接的导致公司的维护成本的增加。

你真的以为你用 Gentoo 做到的性能,CentOS 做不到么?
你真的以为你们一个小 team 打包的质量会一定比 RH 一家公司的工作人员要牛么?
如果你当时真的这么以为,只能证明你当时还不会用罢了。

如果我今天告诉大家,我要做一个 http 的服务器,我不用 apache 不用 nginx,为了性能我要用 xxx 为基础重写一套出来。我相信绝大多数人会问同样的问题,“你觉得你写的能比 ng 好么?”

再回头看看那时候你们自己吧。

----

我不希望,把这个回答变成用各个版本的人的之间的争执,其实没有意义。我只是说,在现在的状态下首推的依旧是 CentOS。我个人在 PC vm 上,用 Gentoo,家里的 HomeServer 用 Debian,公司自然都是 CentOS
至于 Debian 上服务器,你们要是喜欢也 OK,不会有太大的问题。但真心不如 CentOS 省心。
Ubuntu ....... 真的很惨
Gentoo ....... no zuo no die

关于 Debian 的补充:
评论1:
Debian 其实在很多不是那么重要的环境中是很好的选择方案。[不是那么重要的意思是,即使宕机十几分钟、半小时老板也不会和你数钞票的损失。] 为什么?1. 足够数量的包。2. testing 具有可以接受的可靠性。(与 Arch 相比) 3. testing 具有非常好的软件更新速度。 3. testing 不具有 release 特性,永远平滑升级(与 Arch Gentoo 一样)。而 Fedora 与 Ubuntu 类似,具有 release 特性,但一旦新版本出来,老版本维护很少。同时 dist-upgrade 过程并不友好,体验很糟糕。所以如果让我个人选择,学校机房我也会用 Debian。我回答中,也提到我的 HomeServer 是用 Debian 的。其实以前是用 Arch 的,但是 Arch 稳定性真的很差,一个 pacman -Syu 玩死你。在尝过痛苦以后,切换到 Debian Testing,跑了2年左右了,感觉还是很可靠的。

@戴云杰 回答下的评论:
Gentoo 能够激起情怀->于是工作效率大增->公司利益得到保障。哈哈哈,你赢了。还是要分场合的,60 还过得去 6000呢?我也用 Gentoo 做过产品啦,不过不是服务器。TVU networks 的 x86 产品就是我决定转移到 Gentoo 的。在这个产品上,很好的利用了 Gentoo 定制方便,平滑更新的特性,因为 TVUPACK 需要适配最新的 USB Modem。唯一遗憾的是,我没有来得及给它一套二进制分发系统。如果下次还有机会,我一定会想办法做一套。在 Server 上编译,不是我的风格,太脏。我曾经把 CentOS 5 精简到 96 个 RPM 依旧可以开机。CentOS 6 只能做到 100 以上了。
但是,还是要分事情的。我也会花很多时间调试 VIM 写 bash 写 python,但是我开始写 Cocoa 了,我果断放弃 VIM,必须 xcode。
我猜测很多新手(好吧,show B ge 的时候到了)觉得发行版本之间的讨论会类似于早期各种开发语言之间的类似宗教性的讨论[抨击]。
其实并不是这样的,因为熟悉使用一个发行版本的代价远小于熟悉一门开发语言。5-10年的时间,足够你熟悉主流的发行版本。足够让一个高手做到物尽其用,适宜即可。
我不是任何发行版本的粉,我在公司服务器用 CentOS,我在 HomeServer 用 Debian,我在 CubieBoard 用 Debian,我在路由器上用 openwrt ,我在 PC 上用 OSX,我在 PC VM 上用 Gentoo。因地制宜,此乃最高境界。

其实戴云杰是把个人利益==公司利益了哈,我给了个赞,赞是赞这份情怀。有很多事情,你喜欢就够了,我尊重每一个人的喜欢,你其实不需要太多理由的,当初我干这行也仅仅是为了“喜欢”。
再说了,戴云杰老板都出来给点赞了,我还有啥好说的,哈哈。

@素包子 下的评论:
我能够理解你,但是我不赞同你。为什么?
因为我也有把用 XXX 当魄力的年纪,我觉得这样很有趣,很Cool,很特别,我希望自己与众不同,或者我告诉自己我能学到更多的东西(是的,的确可以)。
但是当我经历了这个阶段,回头看的时候。我知道了两点,1. 这个过程是有价值的,没有这个过程,不会成为今天的我。2. 这个过程太花时间了。我投入了比别人多 100% 的经历,来获取比别人多 30% 的知识。可能还有更好的路可以走?
今天我的同事来告诉我,他要自己编译 apache 放到线上,我告诉他。你不要这么做,用 CentOS 自带的就可以了,节约下来的时间你可以真的搞清楚 apache 各种性能相关的参数(相信我,很多人都搞不清),你还可以研究一下如何让开发人员在受控的环境下自由的发布新的版本,且同时具有良好的回退功能而不用让运维介入。你还可以写一套系统每周验证一次备份的数据库是否能够正常加载。
相信我,实际的运维工作中,有太多值得做而没有人做的工作了。他们都比你在那里 configure 来的有意义的多。

嗯,论年龄,应该是前辈了,RH 6 啊?查了一下 1999 年的东西,我还在念初中呢。

@纸糊
1.“RedHat系列好使我没意见,可是你给用户付钱啊?” 
所以我们在谈 CentOS 啊?你不知道他们之间的关系?去看看吧。

2. “关于支持时间的问题,支持时间短一点也是已经告诉你的,这个不至于成为喷点吧” 啊?“Ubuntu 尝试了几次,目前我没看到成功。几乎都是草草放弃。”
Ubuntu 说 LTS 是 3年,可以从历史的维护时间看,很少维护到三年。
这是我要表达的。你不知道 LTS 是 3年?

3. “某天某个软件爆出类似最近 openssl 的漏洞“ 
嗯,你引用了我的原话,请注意我想说的是 ”类似“。而并不是就是这次的 openssl。
说道 openssl 的修复,你的表述是不正确的。
这次的 openssl 修复有两个方式,其一是更新至 openssl 小版本,其二是重新编译将引发问题的功能关闭。并不只是上游修复这一种方式。 

RedHat 应该是采用了第二种,因为他更新的是 1.0.1e-16 只是打包号增加了。(注意 RedHat 还是尽可能的维护版本,我不知道 Debian 是不是这么做的,还是升级到了 1.0.1f?可能答主知道?)
这是题外话…… 我在这里想表达的是,Debian 的组织方式,可能会受到连带更新,尤其是在 Testing 环境中,因为 Debian 在Testing中是不断往前走的。比如 A 依赖 B,B 在不断的往前走,A 遇到了 Bug,于是在下次更新中 A 和 B 有可能会被同时更新。在 Testing 中这种现象是存在的。Stable 中应该不会。 

同时我已经在某些评论中认可,我对 Debian 的描述有夸张的成分。

4. 你想用 squeeze、wheezy 是你的事情,因为你这么用了,所以我不这么用,就体现出了我不懂?我BB?你太抬举你自己了,好歹给点理由吧。

而且我答题的最后也已经说了 ,你用 Debian 做服务器,没什么大问题。
我不推荐的原因我已经描述的很清楚了,kernel 上比 RedHat 弱很多,你们想有反驳意见冲着这个来。

这这么短的针对我的答案评论的答题中,至少体现了三点你”不懂“的东西,我觉得你还是多看看再说吧。
另外,礼貌一点,没有人会把你当傻子。 有很多人都会陷入一种境地,通过攻击别人来体现自己的高大。其实真正内心强大的人,根本不需要这样做。
就像一个评论 Gentoo 的主,一定要说我在攻击 Gentoo,但是其实评论中,尽一切机会显示他有多么多么懂 Gentoo,自己多么多么会用。至于么?你体现自己能力的方式一定是先要将别人放置在你的对立面?low……

我建议大家看看《河南人惹谁了》这本书,里面提到,地域歧视的深层心里,其实是通过歧视别人来提高自己的地位。就像一个美国街头流浪人,跑来歧视中国人,当他说出、做出歧视性的语言、行为的时候,其实潜在的内心是利用这样的机会来提高自己心里的优越感。

而这样的心里状态,在我们生活中是无处不在的。“我必须贬低你!才能体现我的正确性。”
 

彭勇linux/java/python/FreeSwitch/PM

匿名用户、moe sakuya、知乎用户 等人赞同
早期,我们使用 Debian 作为服务器软件,后来转向了CentOS,主要原因如下:

1、CentOS/RHEL的生命周期是7年,基本上可以覆盖硬件的生命周期,也就意味着一个新硬件安装以后,不用再次安装操作系统。要知道重新折腾一个生产机是很麻烦而且有风险的事情。

[2012.2.1]今天刚刚收到红帽子的通知邮件,RedHat 5, RedHat 6的生命周期,延长到10年,太牛叉了。这个对企业用户很重要。

而Debian的生命周期是不固定的,一般新版本发布以后,上个版本再维护18个月。而Debian的版本发布时间间隔不稳定,经常会延期。综合起来一个版本的生命周期一般在3~4年。

[2014.4.24]Debian 宣布对Squeeze(6.0),提供5年的LTS长期支持。

Ubuntu的LTS版生命周期是5年。

如果你选用了 Debian 或者 Ubuntu作为服务器,等生命周期过了以后,就没有安全补丁,你的服务器就会裸奔或者需要重新安装系统。

2、RedHat是一个值得尊敬的开源公司,长期以来Linux内核RedHat的贡献程度都是最多的。可以这么说,如果一个Linux方面的问题,RedHat搞不定,那么也很少有其他公司可以搞定了。公司有一批Linux内核方面的如雷贯耳的大牛,比如:
  • Alan Cox - Core developer, numerous contributions
  • Ingo Molnar - x86 subsystem maintainer
  • Al Viro - VFS subsystem maintainer, linux内核贡献第二多的个人
  • David Miller - Sparc Port maintainer, linux网络部分开发者, linux内核贡献最多的个人
  • Jeff Garzik - Sata subsystem maintainer
  • John Linville - Wireless subsystem maintainer
  • Stephen Tweedie - Ext3 filesystem developer
  • Eric Sandeen - XFS, Ext4 filesystem developer
  • Josef Bacik - Btrfs filesystem developer
  • Rik Van Riel - VM developer
  • Ric Wheeler - Filesystem developer
  • Val Henson - Filesystem developer
  • Dave Jones - Fedora kernel maintainer
  • Kyle McMartin - Fedora kernel maintainer
  • Chuck Ebbert - Fedora kernel maintainer
  • Eric Paris - LSM/SELinux/Audit/Capabilities maintainer
  • Eugene Teo - Security Response
  • Kay Sievers - Hotplug

3、CentOS/RHEL对硬件的支持很好,主流硬件厂商早就将服务器拿过去测试,一般不存在硬件的兼容性问题。

而Debian就麻烦了,由于有版权上的考虑和代码纯洁性上的洁癖,一些硬件驱动和软件被删掉了,导致安装过程有问题。比如 Dell 服务器上,大量使用的网卡 BroadCom,就驱动不了,安装了以后,网络起不来。

4、大量商业软件,比如 Oracle ,都是针对 Redhat认证的,有大量的帮助文档和使用说明,有良好的技术支持。出了问题,也容易在网上找到类似的答案和经验。

5、CentOS 是RedHat的克隆版,如果需要可以随时平滑切换到 RedHat,从而享受RedHat的服务支持。要知道厂商的服务,是最后一道防火墙,如果你给一个大客户做方案,他们一般会倾向选用商业服务。万一出了什么问题,还有Redhat可以求助,或者有一个RedHat可以承担责任 :-)

6、如果你是一个工程师,熟悉了 CentOS/RedHat ,找工作更加容易。如果你是一个企业老板,相对也容易招聘到熟悉CentOS/RedHat的工程师。RHCE的培训,也相对较完善,认同程度高。

7、CentOS/RHEL 的批量安装更加方便

在机房,使用kickstart + PXE安装,给客户,使用定制的kickstart光盘,一键安装,一般在5分钟左右就可以安装完。

上述3,4,5,6几点中,都说明CentOS/RHEL相对于其他Linux操作系统,有相对完整的生态环境,很多公司在CentOS/RHEL投入了大量资源,积累了大量经验,绑定了自己的利益,这个是CentOS/RHEL得以长期良好发展的保证。

=============
补充对评论的一些回复

1. 所谓的“centos稳定性非常差”,不知道你指的是什么?能否举一些CentOS不稳定的例子?至少我们用了这么多年CentOS,稳定性上可以说是坚如磐石的。如果是你说的由于yum升级造成的混乱,那只能说明你对centos不熟悉。
2、RHEL/centos 对于一些新的软件的支持,采用 SCL的方式支持,比如ruby193,python27, python 33, PHP 54, nodejs 0.10, mariadb55, postgresql 9.2
AdditionalResources/Repositories/SCL
3、debian/ubuntu 同样存在版本稳定和程序太老的矛盾,比如他们的LTS版本,一般是两年多更新一次。squeeze是2011年2月发布,wheezy是2013年5月发布,如果你在2013年4月使用Debian,你会发觉好多软件太老,比如:
内核:2.6.32,和Centos 6 一样的
glibc 还是使用的2.11.2
mysql使用的5.1.49
openjdk使用的是 6
php使用的是 5.3.3
python使用的是2.6.6

下一个版本的Deiban,至少要到 2015年下半年才能发布,而RHEL7/CentOS7的正式版发布在即,里面用到的不少软件,都比wheezy的要新。按照你的逻辑,在接下来较长的时间里,是否CentOS比起Debian更加前卫?

再看看Rio的回复:“之前我用了很长一段时间的 Debian,但它的更新实在太慢了(好几年啊有木有!)”,呵呵

4、“debian的支持时间也非常长期”,这个最近确实有了改善,Debian刚刚宣布对 Debian 6.0 有了5年的LTS长期支持。可以这么说,Debian也看到了LTS的重要性,向CentOS学习了一把。
Debian -- News -- Long term support for Debian 6.0 Announced

但Debian做得还不够,因为Debian的LTS在后续版本,比如 Debian 7 (wheezy), Debian 8 (jessie) 里的支持政策还不明朗:
Debian -- Security Information -- DSA-2907-1

Debian的LTS支持,也不是Debian 官方安全团队维护的,而是由其他志愿者维护的,工作效率和质量是否有保证还不知道。相比RHEL明晰的发展策略和安全更新策略,有10年的安全补丁保证,还有不少差距。

5、“debian这个系列的软件包也比较新,debian和他儿子ubuntu很多软件包维护是共享的,更新速度非常快”,不知道你使用的是稳定版还是测试版。稳定版里面你是如何看到软件包“更新速度非常快”的。显示全部
 

pansz欢迎评论

知乎用户、斯温、知乎用户 等人赞同
对于很多问题,回答的时候都是屁股决定脑袋的(无贬义)。比方说,在系统选择问题上,SA跟开发者一定会持有不同观点。

所以,要更好的回答这个问题,本身题主必须说明你是系统管理员,还是开发者。

如果你是系统管理员,保证服务器的稳定是你的第一要务,这是你的选择倾向。为了这一点可以牺牲其他的东西。

如果你是开发者,保证你的开发的应用能够稳定方便的部署到服务器才是最重要的,为了这一点也可以牺牲其他的东西。

系统管理员一定会推荐选择 CentOS,甚至是 RHEL,原因嘛,自然因为他们自身最熟悉,而且理论上更稳定。即便这本身会给开发者带来额外的麻烦,反正与自己无关。

不过,开发者会尽自己所能说服系统管理员不要选择 CentOS,而是选择 Ubuntu/Debian,原因嘛毕竟跨发行版部署常常会是个很蛋疼的事,在十多年工作生涯中我遇到过各种各样层出不穷的事情,其原因当然都是因为服务器选择了一个蛋疼的发行版,而服务器发行版通常而言对开发都不友好,因为两者的目的矛盾冲突。

我能够建议的就是:如果你自己是开发者,如果你自己买了一台 VPS 自己搭服务器用。选 Ubuntu/Debian 挺好。当然如果你觉得自己闲工夫实在多得没处花,可以隔三差五的就到服务器上做升级更新,用 ArchLinux 也无不可。

如果你是系统管理员,上面的程序不需要你亲自开发,那么用 CentOS 最好不过了!至于不方便的地方让开发自己去克服,反正自己维护只要稳定就行。还可以不失时机的责备几句:「你连 CentOS 都适配不了搞个什么开发」,「自己技术不行不要怪服务器版本!」,「不要指望发行版提供的包,需要什么新版本全部自己下载了重新编译就好了!」,微微一笑,深藏功与名。

Rio「IT 公论」主播 

选择 Linux 服务器操作系发行版本一般考虑以下几个因素:

  • 熟悉程度:用你最熟悉的、最顺手的,不然找不着北。
  • 包管理系统:个人觉得 .deb 比 RPM 先进。当然有人会觉得 RPM 更好。看你自己怎么觉得了。
  • 技术支持:如果出了问题自己解决不了,哪里去找技术支持?Ubuntu Server、RHEL、SuSE 这些都有付费的技术支持,但其实除非你是大公司用得起这些付费服务,一般小作坊也不会用。团队里面最好有深刻理解你选择的发行版本的人。
  • 软件包的数量:你选择的发行版本是否包括你需要用到的软件包?现在主流的发行版本基本上包括常见的软件包了,但如果你要用的软件包稍微罕见,不一定每个发行版本都有。如果没有的话,要么你要自己编译、要么你要用第三方的包。如果你不想自己编译而用第三方包的话,选择一个流行的发行版本比较靠谱。比如我喜欢用 Ubuntu Server,因为它的  服务提供了大量第三方编译维护的软件包,省去了不少麻烦。这个考虑也适用于软件包版本的问题。比如 Ubuntu 自己源里的 PHP 版本低于 5.3.3,但如果你想用 PHP-FPM (PHP 5.3.3 及以上开始搭载)的话,要么你要自己编译 PHP 并加入 FPM 补丁,要么你用第三方的 PHP 包。我用的是 里 nginx 团队维护的 PHP 版本,省去自己操心更新维护的麻烦。
  • 更新速度:之前我用了很长一段时间的 Debian,但它的更新实在太慢了(好几年啊有木有!)。有时候需要多个软件包的新版本,又不想麻烦自己编译或是用第三方包,只能等系统版本升级。当然如果你需要的功能用旧版本也能很好满足,那缓慢的更新速度在某种程度上可以等同于稳定,就是那句话说的:If it ain't broken, don't fix it. 记得及时更新安全补丁就好了。
  • 至于稳定性嘛……只要你清楚自己在做什么,这个不会是个特别大的问题。没有什么是彻底安全可靠的。提高自己的维护技能才是王道。
  • 如果你是新手,用 Ubuntu Server。相关资料多很多,容易学、上手。

Fenng微信公众帐号:「小道消息」

身残志坚r3u、知乎用户、知乎用户 等人赞同
选择哪个发行版,更多的还是运维人员的使用惯性。

关键还是做维护的人如何,否则就是用号称最安全的服务器,也还是会出岔子。选人比选发行版更难。

如果运维给力,可以省却太多事情了。

刘鑫矮人工匠创始人,Mac APP开发者,Python …

Elvis Wang王会、知乎用户 等人赞同
平常不太喜欢在知乎说话,还是没想到最热的居然是这个回复,诸位是有多喜欢掐架( ̄(工) ̄)。无非是一些个人经历和具体到这里一些人的回答太不靠谱。其实一个团队用什么linux,历史依赖占很大因素。很多人第一次接触Linux就只听说了RH,然后只见过CentOS,就一辈子没敢迈出这个坎。技术选择还是跟周边有什么人很重要的,我就由衷厌恶那种喜欢抱大腿的。说到具体的人,倒真不一定用 Debian 的就比用 CentOS 的高明,我承认发泄出来的都是个人感情,但是这也是真心话,我不打算收回。

还有那种动不动就得瑟大企业大项目的,首先跟我们创业团队的环境和目标就不一样,其次你也不知道人家那个螺丝钉拧在哪里,反正一秒钟几十万上下,说出来分分钟吓死你。都要看大企业,呐,大,企,业。



墙外,手工搬运一下,链接内容如下:

Bringing Debian to Google Compute Engine


This was an exciting week for the Debian community who released Debian 7.0 “wheezy” that brings big improvements including hardened security, improved 32/64-bit compatibility and addresses a lot of community feedback. Today we’re adding Debian images for Google Compute Engine. Debian, in collaboration with us, is providing images for both Debian 7.0 “wheezy” and the previous stable release, Debian 6.0 “squeeze.” This support will make it easy for anyone using Debian today to migrate their workloads onto Compute Engine.


For fast performance and to reduce bandwidth costs, Google is hosting a Debian package mirror for use by Google Compute Engine Debian instances. We’ve updated our docs and will support Debian via our usual support options or you can also check out what Debian offers


We are continually evaluating other operating systems that we can enable with Compute Engine. However, going forward, Debian will be the default image type for Compute Engine. We look forward to hearing your feedback.

-Posted by Jimmy Kaplowitz, Site Reliability Engineer and Debian developer


我最初的回复保留了。
=====================================

谁特么喜欢用CentOS谁去用吧,我对CentOS的拥趸确实抱有看傻屄的心态。对RH的商业服务质量有期待就花钱买嘛。又想省钱又想蹭服务。十几年来看到那些Excel里保存Root密码在盗版windows上用破解的中文版终端root登录服务器的都是这帮人。
不匿名,不怕得罪人,爱举报举报,爱折叠折叠。

戴云杰这。。。

Gavin黄道金、知乎用户 等人赞同
哈哈,我就是那个做出决定让 VeryCD 从 Debian 全换到 Gentoo 的人。

我非常赞同 @袁昊洋 的回答:“不会用就别怪系统不好。推荐 Debian/Ubuntu 跑 Server 是一件很不负责的事情。” 所以我从来不向别人推荐在生产环境部署 Debian/Ubuntu。甚至我选择的系统路劲和 @袁昊洋 描述的一模一样:RH -> Ubuntu -> Debian -> Gentoo,之前还想尝试 Arch 来着…… 

我同意 @袁昊洋 对 RH/CenterOS/Debian/Ubuntu/Gentoo/Arch 的版本规划和升级概念的理解,但是我想说至今没有后悔选择 Gentoo,我并不同意“这个决策是建立在把自己兴趣 > 公司利益”,恰恰相反,我是在明知会有非常麻烦的后续维护的情况下,结合公司的利益做出的这个选择。为什么?

——对我来说,对美的追求在所有情况下都超过对经济和实用的追求。换个更有逼格的词:这叫情怀。

不止是系统维护,在工作的任何方面,如果我整天对着一个非常不喜欢的,毫无情趣的系统,一定很快让我失去热情,如果失去热情,那么再经济再方便的工具都是无意义的,因为我只把它当做工具,还是一件想到就头痛的工具。举个栗子,我写程序就不会选用臃肿的 IDE,而是用 Sublime Text,把主题、字体、行间距、颜色高亮都调到非常满意后才开始动手写代码。虽然类似 Eclipse 这种 IDE 可以对 Coding 起到事半功 10 倍的效果,但当我面对这个界面的时候,就已经没兴趣写了,效率再高对我来说也是 0。

其次,虽然我同意 Gentoo 维护成本高,但我不觉得在熟悉它之后,这个成本有那么高。VeryCD 在相当长一段时间里,大概 60 台机器,只有我一个人负责运维,而且还是兼的,平均起来估计只有 1/10 的时间会花在运维上,但是我能保证所有系统都跑在最新的 release 版本上,没错,我经常 emerge --update --newuse --deep world,并且不是自动,我更喜欢手动一台台去跑,每台服务器都像自己的孩子一样,我需要清楚他们的脾气。如果有报错,仔细看报错信息,然后 Google。碰到问题,然后学习,这才是提升,自己的水平有提升,才是最大的乐趣。

我对面试的运维都会说一句:“我们的系统都是 Gentoo,可能你之前没用过,维护会比 CenterOS / Debian 麻烦,但这就是我的选择,希望你加入后也能爱上这个系统。”
喔耶,知乎众们几乎把能说的都说了,我用过六年cent os,一年debian,然后这一票,毫不犹豫地投给debian。

1,稳定,是的,debian比centos和fedora都稳定,这主要是指包的兼容上,如果服务器非要用一些稀奇古怪的硬件,这个情况就不太好说。

2, 方便,dpkg,apt-get 比 rpm,yum好用太多,不说包的数量,就常用环境的安装维护,要说fedora/redhat系更好真是昧着良心。

3,活跃,debian/ubuntu的社区环境更好,参与程度更高。
这个完取决于SA的喜好。不能简单以为RHEL或者Centos就能比Debian在稳定性上会高出多少。现在很多人使用 Centos,是因为觉得RHEL是老牌企业版,比较“靠谱”。
不过我个人比较倾向于Debian。

康晓宁kxn@newsmth

Fwolf、知乎用户、yidijimao 等人赞同
这就是一个豆花甜还是咸的问题。个人习惯通常凌驾于其他因素之上。而且这个东西里面还经常掺杂着道听途说没有证明的一些内容,例如XX比YY更稳定之类的。

一般来说对选择可能有影响的因素
1: 应用,这个是第一因素,假如要用到一些商业软件,那基本就是人家官方支持什么就用什么好了,别自己给自己找事,强行弄过来的话,好用没人会念你的好,出事了都是你的责任。
2: 机群数量, 机群数量小的时候随便用啥都不会有太大问题,像gentoo这样编译死人的东西一两台用用也还ok。只要人力能罩住又有兴趣那怎么弄都没问题。但机器数量上去以后,没有二进制包管理就如同噩梦,不仅系统软件需要用二进制包管理,应用也需要用二进制包管理,才能达到高效升级/恢复的目的。我认识的 ./configure 党基本后来都进化成 rpm 党或者 deb 党了。
3: 商业支持,如果是做方案,没有商业支持的方案一般比较没有竞争力。从这方面讲如果一开始不想花钱,CentOS 会好一些,因为在需要的时候基本可以无缝迁移到 RHEL,Redhat 的牌子还算是够响亮。而 deb 系就比较别扭点,只有 ubuntu-server 比较能撑起门面。

我个人的喜好是 CentOS,优点是系统比较干净简单,缺点是很多包官方源里面没有,就算是 EPEL 里面也没多少东西。

RPM vs DEB 我以前在 blog 上面提到过,rpm 打包相对方便一些,一个 spec 文件改改就行了,deb 则要一整个目录。另外 deb 系有个我不太喜欢的地方是默认会把各种软件的配置文件都拆的很散,对新手使用来说可能觉得很方便,自己加的东西模块化的就可以放进去了。但真正在线上应用里面一般需要是精简的系统和配置文件,上来就拆的特别散不利于找问题,也不利于配置的备份和迁移。如果有拆的需要也应该是根据实际情况只拆需要拆的地方。

李海操作系统,编程语言只是工具

知乎用户、知乎用户、知乎用户 等人赞同
选择那个系统其实要跟你在这个系统上要干什么,做哪些服务器,如果是我的话
nginx+php+mysql freebsd
tomcat+jsp+orcal 我会选择ubuntu
apache+php+mysql 我会用centos
在freebsd上装java环境比较痛苦,其实大家真正的用的是应用而不是服务器

知乎用户

知乎用户、知乎用户、Kevin Ma 等人赞同
下面这条新闻也是debain/ubuntu强有力的使用证据,
Spotify从debian迁移到ubuntu系统,开放的社区不会被任何的技术所垄断。
Spotify migrate 5000 servers from Debian to Ubuntu

袁昊洋说了很多,最佳回答也非常全面,但是缺少一点东西,但他回答的问题是《在中国,服务器操作系统应该选择 Debian/Ubuntu 还是 CentOS?》

本人来打脸,打的不好,是不是五万(知乎没有五毛),大家自行鉴别,说的过头,请勿见怪。

很多国外优秀的支持在中国没有做起来
1. 中国模式,条款和流程过于繁杂,很多外国公司不适应
2. 国人英文不好,或者说领导的英文太差
4. 国人用的跟风,一般都是紧跟大型互联网公司,排除少量牛B的人或企业,一般大部分跟风
3. 不要说的开源软件都是靠redhat一家支撑起来的,别说的海量的社区软件redhat都有参与,redhat等待别人的fix package而已

RHEL 5.0开始到 RHEL5.9 仅仅一项Autofs各种恶心的bug我就不说了,懒得去查,这个不是论题重点。

Redhat确实不错,有商业的组织,完善的测试,但是频繁的打包次数不能说明每一次打包的软件修复质量,debian本来就是更新慢,补丁包更为集中,重要还是找ChangeLog,而不是看打包次数。

次数 != 质量, 100次不见得比1次强。

关于 “Debian 是没有真正意义的 release 概念的。Debian 有众多仓库,stable,testing,unstable 这段

RHEL对基于RHEL/CentOS无数的第三方仓库的包都是不给予支持的,好吗?

任何工程师都能制作RPM包,制作水平参差不齐。这个不是debian的问题,是所有第三方仓库的水平问题。不能只怪debian。
所以说用了第三方仓库的RHEL CentOS觉得自己比debian稳定都只是意淫。

3、CentOS/RHEL对硬件的支持很好,主流硬件厂商早就将服务器拿过去测试,一般不存在硬件的兼容性问题。
而Debian就麻烦了,由于有版权上的考虑和代码纯洁性上的洁癖,一些硬件驱动和软件被删掉了,导致安装过程有问题。比如 Dell 服务器上,大量使用的网卡 BroadCom,就驱动不了,安装了以后,网络起不来。

上面第三点完全就是恐吓
一个合格的工程师会购买机器的时候选择硬件的时候不考虑系统?
这种事情在国外是不可能发生的

当然不是所有的机型都支持,但都可以查的到相关信息
如果你熟悉查询硬件芯片信息,也很方便和支持列表进行比较。

Dell与ubuntu紧密合作
Ubuntu Server

Dell and Canonical

Dell and Canonical have reached an agreement to collaboratively support our mutual and future customers by bringing the best of breed support for both the hardware and OS. We have both seen the increasing demand for our solutions to be integrated, and we are happy to be able to work with each other to ensure compatibility and functionality with Dell PowerEdge servers running Ubuntu Server.


HP 支持社区版本有

Asianux, CentOS, Debian, OpenSUSE,Fedora
Community Linux
HP works with a wide range of Linux distributions to enable HP ProLiant servers to run on these distributions. In addition, ProLiant servers are enabled on community and regional Linux distributions. This means:

软件也相当齐全
  • Most of the drivers and some of the ProLiant management software are available in the distribution. Additional core management functionality offered by HP includes: 

    • Array Config Util (ACU) (cpqacuxe + hpacucli)
    • HP Lights Out Config Util (hponcfg)
    • Diagnostics (hpdiags)
    • Management (hp-health, hp-snmp-agents)
    • Systems Management Homepage


4、大量商业软件,比如 Oracle ,都是针对 Redhat认证的,有大量的帮助文档和使用说明,有良好的技术支持。出了问题,也容易在网上找到类似的答案和经验。

这个说法无法反驳。只是我不清楚如何的区分出debian的文档和资源比redhat少。
google?serverfalut?stackoverflow ?

5、CentOS 是RedHat的克隆版,如果需要可以随时平滑切换到 RedHat,从而享受RedHat的服务支持。要知道厂商的服务,是最后一道防火墙,如果你给一个大客户做方案,他们一般会倾向选用商业服务。万一出了什么问题,还有Redhat可以求助,或者有一个RedHat可以承担责任 :-)
ubuntu商业支持


不清楚Canonical在中国没有走代理商,但Dell也是有支持的,还是参见这个链接
Ubuntu Server

6、如果你是一个工程师,熟悉了 CentOS/RedHat ,找工作更加容易。如果你是一个企业老板,相对也容易招聘到熟悉CentOS/RedHat的工程师。RHCE的培训,也相对较完善,认同程度高。

这个不能作为任何参考,熟悉linux的人,只要有相应的文档,用啥发行版应该不是问题。
如果还局限发行版招人,只能说明你不懂linux。

2 Ubuntu的LTS版生命周期是5年。
请问5年和7年区别2年,袁昊洋估计很少使用RHEL4的支持。
但是很多RHEL4的问题,Redhat 中国的回答是不是帮尊敬的客户解决,
而是回答,“请升级您的系统,当前版本不支持, 您如果应要升级高版本内核或某些核心库文件也不是不可以,“那样我就不能提供支持了。” 

每次听到这种客服回答,我TM想当年哪个猪头安装的系统,是我我就装debian。
关注的人少,自然公司投资的资源少,维护的力量弱,你还看到oracle还给你推oracle8么? 

加上各种云服务,分布式系统的普及,老旧系统长期支持也慢慢不在适用了,当然不代表没有需求。严重依赖老系统,意味着你的软件是失去开发支持的。

7、CentOS/RHEL 的批量安装更加方便(第七点写的特别外行)
在机房,使用kickstart + PXE安装,给客户,使用定制的kickstart光盘,一键安装,一般在5分钟左右就可以安装完。

请问哪个稍微流行点版本Linux不能kickstart ?

最后网卡驱动问题,请问你用网卡都只是用RHEL默认的驱动么?
boardcom的问题少么?请问你用mellanox网卡么? 很多时候还是要去网卡厂商更新驱动。
不少网卡RHEL默认驱动都有部分功能缺失。

我并不觉得这个ChangeLog比不上Redhat的Release Note


Who's using Debian? 这么多企业和机构一定用debian做测试机?
而且国外很多公司提供对debian的支持,只要你付钱,别说2.6的kernel,2.4的kernel也能支持

极端举例,就算redhat测试1W次,也不代表你的应用跑的RHEL就一定没有问题,就算debian只测试了1次,也不代表你的应用跑的debian就一定有问题。


但是再完善的组织和测试也不一定能回避你应用所产生的问题,重要的是运维人员问题解决能力,这个能力包括了很多,但没有Linux发行版。显示全部
 

知乎用户,呵呵

知乎用户、Fwolf、知乎用户 等人赞同
从rh6开始到as2.1到debian3到fbsd4到centos,期间折腾过gentoo当桌面,这个是我的折腾路线,我也和不少公司的运维接触过,让我佩服的运维哥不多,VeryCD的运维哥上榜,我佩服的不是他们的技术,是魄力。

@袁昊洋 说的是有道理的,适用于大部分的公司,但是我想说的是,当你hold住了这所谓的成本之后,你同时丢掉的可能是魄力、胆识和创新。另外屁股决定脑袋,你追求的东西和公司追求的东西未必是一回事。

我猜99%的公司,运维的KPI大头是不出事吧,no change no die是大部分运维人的行为规则,我并不否认这个规则是血泪积累出来的。某个银行每个季度要把所有的设备重启一次,以确认所有的备份和流程都是生效的,很多银行都在谈业务连续性,但有这个魄力的还真不多。

可能有人会说创新的路子多了去了,为啥非要在OS上呢?对的,但是习惯会影响一切,咱扪心自问,咱当运维这几年,胆小了吗?

用啥不重要,重要的是这背后的魄力,胆识和创新精神。不同公司处于不同阶段会有不同的要求,但我相信有魄力,有胆识,敢创新,这是一笔极大的财富并影响我们几十年,对公司和对个人来说都是这样。如果你的老板愿意冒险,愿意出钱,让你拥有这些,请珍惜吧,拥抱变革,拥抱挑战。

我是一个稍微有那么点傲骨和情操的人(俗称Biger),我尊重走寻常路的人和公司,但我更佩服和欣赏有魄力的他们。

另外解决openssl漏洞的方法有很多,升级只是可选项,ssl offload也可以破。

Randolph坑爹的SA

知乎用户、知乎用户、知乎用户 等人赞同
现在用的ubuntu,一年多了,没有出过什么问题,关键环境的搭建很方便,一条命令可以搞定,centos感觉上手没有ubuntu快,反正都比windows好,以前用windows经常挂。。。

Linux的发行版有上百种,如何选择也是一种难题。以下为收集的资料,仅供参考。


一、Ubuntu Desktop 和 Ubuntu Server

这个是最方便,也是最快捷的方式。如果刚开始使用Ubuntu,且不太熟悉命令行的可以选用Ubuntu Desktop来学习。继而转为Ubuntu Server。对于初学者,Ubuntu可以更好地上手,并且提供了很好提供了apt软件管理方式(这个是目前最好的软件管理方式),使用起来非常方便,同时Ubuntu的社区也非常的活跃,使用的人数也较多。遇到问题也可以很方便的找到答案。

Ubuntu的更新周期比较稳定,每六个月会发布新版本,分别在每年的4月和10月,而Ubuntu Desktop的生命周期为1.5年,Ubuntu Server的生命周期为5年。同时Ubuntu还有一个LTS版本,即长期支持( Long Term Support ) ,他的生命周期为3年。

下载地址:The world's most popular free OS


二、Debian GNU/Linux

Debian非常适合追求性能和稳定的个人用户使用,同样的他是基于apt的软件管理模式可以让你非常方便的管理软件。虽然ubuntu是基于Debian进行的二次开发,但是并不代表Ubuntu会比Debian好。Debian更多追求的是稳定,可能Debian的相比相比要比Ubuntu低一些,但是服务器最重要的不就是稳定吗?如果是生产环境,个人建议Debian还是会比Ubuntu好一些。Debian主要分三个版本:稳定版本(stable)、测试版本(testing)、不稳定版本(unstable)。

Debian大概每两年发布一个新的版本,而每个版本的生命周期大概为3年,即新版本发布后还会对老版本维护一年。

下载地址:Debian -- The Universal Operating System


三、CentOS和Rad Hat(RHEL)

RedHat 在发行的时候,有两种方式:二进制的发行方式以及源代码的发行方式。无论是哪一种发行方式,你都可以免费获得,并再次发布。但如果你使用了他们的在线升级(包括补丁)或咨询服务,就必须要付费。

RedHat 一直都提供源代码的发行方式,CentOS 社区将 Redhat 的网站上的所有源代码下载下来,进行重新编译,形成一个可使用的二进制CentOS版本 。由于 LINUX 的源代码是 GNU ,所以从获得 RedHat 的源代码到编译成新的二进制,都是合法。只是RedHat 是商标,所以必须在新的发行版里将 RedHat 的商标去掉。

RedHat 对这种发行版的态度是:“我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务。”所以, CentOS 可以得到 RedHat 的所有功能,甚至是更好的软件。但CentOS 并不向用户提供商业支持,当然也不负上任何商业责任。

Redhat 有两大 Linux 产品系列:

1、免费的 Fedora Core 系列,主要用于桌面版本,提供了较多新特性的支持。更新频繁、不适合做服务器系统。

注:Fedora 主要是Red Hat作为新技术的测试平台,被认为可用的技术最终会加到Red Hat Enterprise Linux中,Fedora大约每六月发布一个新版本,而每3个Fedora版本后会有一个Red Hat版本的出现。


2、收费的 Enterprise 系列,分成 AS/ES/WS 等分支。

A 、 Red Hat Enterprise Linux AS (Advanced Server)

是企业 Linux 解决方案中最高端的产品,它专为企业的关应用和数据中心而设计。 Red Hat 企业 Linux AS 是唯一支持 IBM i 系列, p 系列和 z 系列 /S-390 系统的产品。在 Intel X86平台上, Red Hat 企业 Linux AS 可以支持 2 个以上 CPU 和大于 8GB 的内存。典型的 Red Hat 企业 Linux AS 应用环境如下:数据库和数据库应用软件,WEB 和中间件,CRM,ERP , SCM

B 、 Red Hat Enterprise Linux ES (Entry Server)

为 Intel X86 市场提供了一个从企业门户到企业中层应用的服务器操作系统。它支持 1-2CPU 和小于 8GB 内存的系统。它提供了与 Red Hat 企业 Linux AS 同样的性能,区别仅在于它支持更小的系统和更低的成本。典型的 Red Hat 企业 Linux ES 应用环境如下:公司 WEB 架构、网络边缘应用 (DHCP, DNS, 防火墙等)、邮件和文件 / 打印服务、中小规模数据库和部门应用软件

C 、 Red Hat Enterprise Linux WS(Workstation)

是 Red Hat 企业 Linux AS 和 ES 的桌面 / 客户端合作伙伴。 Red Hat 企业Linux WS 支持 1-2CPU 的 intel 和 AMD 系统,是桌面应用的最佳环境。它包含各种常用的桌面应用软件 (Office工具,邮件,即时信息,浏览器等 ) ,可以运行各种客户 - 服务器配置工具,软件开发工具和各种应用软件 ( 例如EDA 和 Oil/Gas 应用软件 ) 。 Red Hat 企业 Linux Ws 和服务器产品由同样的源代码编译而成,但它不提供网络服务功能 ( 如 DNS 和 DHCP) ,它只适合作客户端应用。

CentOS 是基于Red Hat Enterprise Linux AS 的源代码进行编译的。

选用 CentOS 还是 RedHat ,取决于你所在公司是否拥有相应的技术力量及公司的资金水平。

CentOS和RHEL一样生命周期均为10年,即一个版本会被维护10年,另外相同版本的CentOS一般会比RHEL晚推出1~2月,补丁会晚推出1~2周。


四、Gentoo & Arch Linux

Gentoo可以说是目前定制性最强的Linux系统了,主要原因是从内核开始都需要你自己去编译,Gentoo使用源码来做包管理,其实不仅仅是USE所控制又不只是装多少包,你还能控制编译选项,使得所获得的程序更加是你所期望的。此操作系统特别适合Geek使用,但是更多的人不太喜欢自己去做编译这档子事。Geetoo针对超级发烧友用户,Level不达标的不要随便折腾。

Arch Linux也是很高定制性的linux发行版,它与Gentoo不同的是,它是基于二进制包的发行版,Arch 采用 滚动升级策略,这就允许一次安装持续升级,完全不需要重新安装或者解决系统版本升级带来的种种复杂问题。通过输入一行命令,Arch 系统就可以保持最新。Arch 刚安装后只提供了一个最基本的系统,可以让用户按照自己的喜好,通过仅仅安装自己需要的软件来配置自己的理想的环境。官方没有提供图形界面配置工具,大多数系统配置需要通过从命令行编辑简单的文本文件来配置。


五、FreeBSD&OpenBSD&NetBSD

在免费的BSD中,FreeBSD是名声最大的。不得不说的是,苹果公司的Mac OS X 和iOS也是基于FreeBSD创建的。FreeBSD的中文参考资料也是最多的。三者的区别为FreeBSD注重性能、OpenBSD注重安全。NetBSD注重可移植性。

OpenBSD被称为世界上最安全的操作系统。OpenBSD的主页(www. openbsd.org)报告说OpenBSD“在默认安装情况下在过去的所有日子里只有两个安全漏洞”,它的意思是说(其实任何人都知道)在过去的四年内发布的OpenBSD版本没有一个被来自Internet的袭击攻破。

NetBSD也是免费BSD的一种,它是基于BSD的最轻便的操作系统。目前能够在46种之多的不同硬件构架上运行。 这种便携性使得NetBSD成为嵌入式系统(在其它设备中运行的,看不见的计算机)的最佳选择。

显示全部
 

应跨江啥技术都懂一点 啥都不精通

知乎用户、知乎用户、Fwolf 等人赞同
我最早用suse,以前用centos,现在用Ubuntu。
为啥suse?n年前电信客户的linux服务器,装的都是suse,没办法。
后来为啥用centos?好处很多人说了,不再重复。
为啥现在用ubuntu?方便好用,软件新,我不用折腾。(比如centos6的python是2.6,要自己折腾到2.7),最重要的是,现在用云服务器了(青云/阿里云/digitalocean)
====引用袁昊洋===
说好的 LTS 呢?
说 End of the Date 是3年整就是一个笑话,只要下个 release 一出,上个 release 收到的更新数量就可怜。
=====
我无所谓LTS是10年还是1年,反正我用最新的,用最新的ubuntu版本起一个云服务器,脚本(安装依赖 拷贝配置文件 拷贝和启动程序等各种各样的内容)一跑,10分钟就在一台最新的服务器上部署好应用了。多台服务器的话自己做映像。然后修改dnspod/青云路由器/阿里云SLB配置,切换到新服务器,过一段时间后干掉旧服务器。甚至,连起服务器做映像改dns或路由配置这些都可以用脚本来做(青云/dnspod/digitalocean已经提供了api,阿里云据说很快也会提供api)。

如果半小时就能把所有应用迁移到安装最新发行版本的服务器上,你还在乎redhat10年维护期吗?

riku 作者之一

知乎用户、李祁、知乎用户 等人赞同
也许你可以尝试一下子 FreeBSD

知乎用户,路人甲

知乎用户、Honghe赖奕安 等人赞同
多年的经验来看,Ubuntu/Debian在易管理方面有很大的优势,可以简化整个安装、维护、升级的流程。如果熟悉程度差不多,应该优先选择Ubuntu Server。但是有几个问题需要注意:
  1. 硬件支持上ubuntu明显不如centos。一些冷门或较新的硬件,厂商一般会发布redhat/suse的驱动,而ubuntu不一定会容易搞定。这是建议选择centos。
  2. 软件支持上ubuntu也不如centos。一些商业软件列出来支持的都是特定版本的redhat/suse。这并不是说在ubuntu上装不了,只是出问题后厂商一般会将问题怪到操作系统上。这时建议根据厂商支持的操作系统来选择。

谭永利我是校长ubuntu

知乎用户、王政、知乎用户 等人赞同
ubuntu,维基百科也使用ubuntu做服务器

陈渊做游戏的。

火药味很足啊。

曾经在Canonical工作过,很多公司的项目和技术当然在Ububtu上用最方便。个人也很喜欢用Ubuntu的桌面和Server,毕竟是最早接触的。

但是,对于向别人推荐稳定和靠谱的Linux服务器发型版,我现在可能会推荐用CentOS。原因在排名第

posted on 2014-10-07 10:24  jiahuafu  阅读(2785)  评论(0编辑  收藏  举报

导航