公司的服务器都是用的Ubuntu LTS,原因很简单,在我们这里没有哪个发行版有Ubuntu这么好的源,用cn99的源,速度很快,速度到M级,并且我作为主要的维护人员,我自己桌面操作系统上用的就是Ubuntu,这样维护起来比较方便。之前引入Linux系统时,也选择过,最终结合各种因素选择了Ubuntu。其实Debian也挺不错的,在cn99也有源,但是我之前没有使用过也就算了。对于Redhat系列的东西,最早使用的Linux,但是对RPM没有好感,出了yum之后,在这边也苦于没有合适的源,其实CentOS应该是很不错的,人家RHEL靠Linux实现了盈利了,Redhat在企业服务器这里肯定是有经验。
这次是要做个防火墙兼反向代理服务器,ubuntu说实在的,可定制性太少,即便是装完命令行最小系统之后,还是有好多不需要的东西,所以对于防火墙不想使用ubuntu了,但是如果时间不允许,那么还是会考虑用Ubuntu,毕竟维护也有统一性。于是把目标转向了几个定制性比较高的系统上面。Gentoo,使用时间最长的一个系统,但是在这边同样源不太好,想当初在学校教育网内用tsinghua的源,那叫一个爽字。一般来说用Gentoo做服务器还是有风险的,(1)装系统编译费时间;(2)升级(主要是为了安全性)会经常的有很多包更新,本来可以只是更新安全公告里面出现的软件包,但是以前用Gentoo养成的习惯,看不惯有没有升级的包。不过如果做一个单一行的服务器,上面要装的软件比较少的,所以更新和编译应该不成问题,所以还要努力找找合适的源。ArchLinux,使用过几天,当初在新电脑上死也装不上Ubuntu的时候用过,但是后来发现它也在我的新电脑上不能生存,于是卸掉了。不过看源,似乎国内的源都是个人网友爱好者架设的,不太牢靠。另外据说作为服务器来讲还是不太稳定,这是LinuxSir上一个架ArchLinux源的哥们说的。另外,从网上找ArchLinux的SeLinux资料也没有,只看到了一个抱怨装不上的帖子。再加上我对ArchLinux不熟,所以也就不坚持了。接下来考虑了BSD系统,FreeBSD和OpenBSD,OpenBSD号称世界上最安全的操作系统,但是它的光盘没有,要用网络安装,看来网络依赖太大,所以不考虑了;FreeBSD,从N年起一直对它跃跃欲试,但是却还没有真的往自己系统上装过。不过它是以稳定的网络操作系统为卖点的,并且Gentoo的Portage机制也是师从于它,所以对它真的向往,不过国内的源是否满足要求还是要考察,也许装装试试就知道了。现在把选择范围缩小到Ubuntu,Gentoo和FreeBSD。倾向于gentoo,不过选择依然很难。另外要做为服务器操作系统,系统管理的文档必须要齐全,在这点上Debian,ubuntu,gentoo,freebsd都非常的棒。
原来想,无所谓了,没有谁比谁绝对优秀,并且在防火墙的应用领域都还不错,谁的源快就选择谁吧,不过还是决定多看看资料,不能那么随便。
最终选择Gentoo:
(1). 一个老外关于Mysql在Linux或者FreeBSD运行的总结:If you don't have a preference, use Linux. You'll be
happier. Trust me.
(2). 可以使用SeLinux提高系统安全性,它的Hardened kernel是专为服务器优化的,这个方面不吃亏
(3). 我有Gentoo Linux几年的使用经验;虽然使用FreeBSD又是一个学习的机会,但是在生产环境中还是不能太自信
(4). 又突然想起Gentoo以前的领导者是从FreeBSD转过去的,他之前好像也是FreeBSD的活跃开发者,这些在gentoo的历史里面可以看到
另外,FreeBSD要到7.0才会支持Sata硬盘,现在虽然是在一台廉价PC机上实行,但是新进来的高性能PC很可能就是Sata硬盘。不过可以肯定的是FreeBSD在快速演化,还是值得期待的。之前考虑FreeBSD主要是因为网上宣称的在高负载条件下的性能还有TCP/IP协议栈,这对于反向代理服务器和防火墙应用非常重要;但是却好像只是和Linux2.4内核的比较的,但是2.6内核都已经稳定好几年了。不管Linux是否真的现在已经优越了,毕竟我已经有Linux多年的经验了,而我也不是要做防火墙产品,所以也不担心GPL协议的问题。还是对FreeBSD存在着向往,但是时间有限,如果真要用到FreeBSD的时候再学习吧,学了不用也会忘。
------12日更新------
不知道我为什么下意识的把Ubuntu排除在外,因为它是二进制发行包,其实所谓可定制性,我只是希望系统上只有我需要开启的服务,而其他的不该有的东西都不要开,这其实也是可以定制的,把那些服务关掉就可以了,而装上了就装上了,现在的电脑也没有到节省到那些软件也不能多装的地步,做系统管理有洁癖可不行,会给自己太多的麻烦。并且所有的服务器用统一的版本便于维护,服务器多起来了之后,甚至可以维护一个本地源,供这些机器使用。开始准备实施Gentoo时,突然有了上面的想法。一年多来,Gentoo世界已经发生了很多的变化,在stage里面已经正式出现了hardened stage了,于是在网上查了下它的资料,因为如果是服务器,那就一次性的全部配好,为安全打好基础。但是从国内外论坛上得到的消息,似乎hardened stage比较容易出问题,突出体现在glibc的问题上。根据之前用Gentoo的经验,在gentoo的维护中偶尔还是要出点小状况的,而解决这些状况很多时候就需要重新编译,这可能会导致不必要的down机时间。而glsa似乎用起来也不是怎么爽,而在ubuntu中,可以配置自动更新security软件仓库中的软件包,达到自动更新的效果。开始有点畏首畏尾Gentoo的安装和维护了。在一个企业里面引入多个linux发行版不是太明智的行为,不是每个人对系统管理都有着执着的热情,引入复杂度太大的Linux,不便于后续的人员接手和培训。这不是大学里面了,没有那么多时间去研究,这对于我和别人都一样,追求时效性才是准则。之前刚刚用Ubuntu好像是被铁链困住了双脚,没有用Gentoo那么自由,而且出了问题也不知道怎么解决,不向Gentoo用个LiveCD启动机器就什么都解决了。后来用了Ubuntu的rescue盘之后,其实也就大同小异。启动机器,挂载,chroot到根分区就可以了。ubuntu有现成可用的debian的文档资源,这些都是一些增强系统管理自信心的东西。现在是没有太多时间花在操作系统本身的配置上,如果真的有必要了,再换也不迟吗,所以就也先ubuntu吧。
------13日更新----
跑到机房去开始装机器,还是忍不住想装Gentoo,这毕竟是个用于防火墙和VPN服务器的机器,我想用我熟悉的发行版本。从网上找到的mirror.pacific.net.au镜像网站速度还可以,下载平均速度有500k/s,如果再开上parallel-fetch,几乎就没有等待下载的情况了。而从stage3装起,装服务器,其实也没有多少东西需要编译,很快就完成了。用gentoo,久违的感受,colorful的字符界面,配置文件的vim加亮显示,很是舒服。不过我仍然倾向于用gentoo的命令行界面,或者像fvwm,flubox等轻型图形界面环境,如果要编译其他的大型软件,我倒是真的不太愿意。尽管发现了一个比较快的镜像,但是在办公室还是愿意使用Ubuntu,它让我可以花更多的时间专注在软件开发本身而不是开发环境上,并且发行版本之间的差别对于我的影响,现在很小了。不过在笔记本上,还是想装个gentoo,因为不想让ubuntu破坏我的MBR,上面有个正版XP的自动恢复呢,据说破坏了MBR就无法用F11键激活了,我装gentoo可以改用个grubfordos启动起来,这是我要的效果。虽然cygwin基本上可以替代Linux的开发环境,不过它始终是一个port过来的运行在windows内核之上unix环境,涉及到linux内核,防火墙等等东西就没有办法用了,还有就是really miss gentoo了。gentoo这两年的变化真是太大了,今天看到的分布式编译,cccache,并行下载等等特性着实让我感到落伍了。