nginx shell 程序员 wordpress HTML5 Windows Ubuntu java linux命令 Android 微软 centos Firefox google apache 开源 php linux mysql Python

一个运维的咆哮:我受够了Linux服务器 重拾Windows

一句新的格言是,对于有着正常生活的人来说,幸好还有 Windows。实不相瞒,这其实是一篇不停地大声抱怨 Linux 的文章。但是现在我生气得很,沮丧得很。众所周知,Linux 人员打心底里就瞧不起没有夜以继日地琢磨 Linux 发行版细枝末节的人,但我有句话要说:我可不像你们这样 Linux 人有的是大把时间来钻研技术。

我受够了 Linux

我受够了。我受够了所有拼凑起来的各系统部分必须版本刚刚好,必须有刚刚好的依赖关系,必须以刚刚好的方式来编译,必须选择刚刚好的时机,还必须数量刚刚好的的人员在刚刚好的时间步调一致。

我受够了所有不同的软件包管理器。一些代码使用某一个软件包管理器来分发,另一些代码则使用别的软件包管理器来分发。受够了只要按照资料不充分的 HOWTO 文件,在终端窗口中机械地输入一行行代码,可以将模块下载到 Ubuntu 上,却根本无法下载到 CentOSFedora 上,就因为没有按刚刚好的顺序来指定代码存储库。

我受够了所有不同的外壳程序和用户界面。除非你建立起一条稳定的 ssh 网络连接,下载了各部分代码,重新编译了软件包管理器,否则编译代码和发行版甚至无法启动进入到用户界面中;尔后,趁网络连接凑巧很通畅的时候,还需要通过调整另一个烦人的系统配置 .Ini 文件,全面设置远程监控器屏幕。

我受够了这一点:这个东西(Linux 服务器)无法可靠地运行。当然喽,如果你每天每时每刻都在接触 Linux;如果 Linux 对你来说就是生活的唯一;如果在你长出第一根胡须后,为了 Linux 从来没有约过异性;而且如果一生中除了负责做 Linux 之外,从来没有负责过其他东西,那么你自然谙熟关于 Linux 的一切事情。你自然知道哪些论坛和哪些楼主拥有只有他一个人知道的超长、超怪的命令行。

你还知道,如果你在发行版4.3版本上输入某个命令行,它可以运行,但是在4.3a 版本上却出现了问题,那是由于后一个版本需要完全不同的程序,使用完全不同的软件包管理器来打包,而且确保那个命令行的顺序完全正确:为此需要进入正好合适的聊天室,需要在晚上正好合适的时间段,与正好知道的某个 Linux 专业人士对上话,才能够把文档中没有说明的-lM 添加到第四个参数的前面。

要是哪个不走运的家伙把大小写搞错了,那就惨了,因为把-Lm 放在第四个参数的前面会带来完全不同,甚至文档中不作进一步说明的,可能会危害所有人的某种结果。

我究竟为什么受够了 Linux?

我受够了 Linux,因为仅仅为了可以在图形用户界面中启动该死的虚拟网络连接(VNC),或者将平时所用的备份程序装入到网络上其他机器上,就需要好几个月经受上述种种磨难;而这种感受就像是玩《忍者武士》小游戏,非得四道关全部闯过,才能到达绿山的巅峰。更要命的是,我好不容易让整个系统起来,没想到就崩溃了。

确切地说说,我当时准备部署我那台 Linux 服务器。我想更新服务器,更新成最新版本,因为我做事循规蹈矩,经常定期更新。于是,当 Gnome 声称有更新版可以打上时,我表示 OK。

我真是太天真了。我表示 OK,实际上是给 Linux 打上更新版。我知道,我本该格式化另一个硬盘,使用 dd 命令将我那堆文件拷贝过去,下载源代码包,将所有代码重新编译一次,然后向 Linux 祈祷,从头开始构建我的整个操作系统,而这一切仅仅是为了安装一些安全更新版。

但我没有这么做。我以为,经过这么多年后,Linux 终于足够健壮了,不至于因为我仅仅想运行服务器、确保版本最新,就给我当头一棒。我好傻!我真的好傻!

于是我执行了更新。结果系统崩溃了。显示异常。而我之前付出的努力和时间全部泡汤了。而现在,服务器无法启动。

更要命的是,服务器放在互联网服务提供商(ISP)那里,由其托管,于是我只好低声下气地请求,请求对方重新为我构建硬盘,重新安装操作系统。幸好,服务器只是仍处于试运行的机器;我没有在上面运行工作系统。不然,我是完全没辙了,而不是仅仅气得破口大骂。

抱怨开始了……

好了,尽管我确信各位看官会说,我在技术方面准是个毫无经验的新手。你要知道,我可是个 UNIX 产品经理,之前不但写过内核代码,还在大学里教过语言编程。而现今 Linux 存在的问题却是,它绝不是内核这么简单。它是由成千上万个编得很差劲的软件片段组成的混合体,所有软件片段拼凑在一起,其中大多数只能在各片段采用某种组合的情况下才能正常运行。只要要哪里出现不匹配,搭起来的整个系统就顷刻崩溃。

当然,Linux 机器可以成为出色的服务器。但是它们需要有一组专门的 Linux 技术人员,这些人了解关于 Linux 的一切事情,了解所有的联络暗号,了解所有不为人知的趣闻轶事,因为他们有的是时间。

而我就是个工作忙碌的人,有其他事要做。我只是需要打开一些网页,运行我的程序,仅此而已。我没有时间来跳血泪之舞,而你要真正成为 Linux 文化圈子中的一员,就得会跳血泪之舞。

我可是受够了。当然,我仍会在虚拟机中的 Linux 上运行某些一切就绪的硬件设备,可以几乎立马对虚拟机执行备份、快照和恢复等操作;但是就支撑我那些服务器的核心引擎而言,从现在开始,我的眼里只有 Windows,永远如此。

我可再也没有资本将更多的时间浪费在 Linux 上面了。一切都是随便拼凑起来的系统怎能让人放心?绝对不会用 Linux 了。你总不至于出钱、让我在服务器上运行 Linux 吧。永远不会再用 Linux 服务器了。

情绪平静之后

近日我找那家 ISP 谈了谈。对方告诉我,他们早上过来后发现,服务器监控器上显示了数量多得惊人的错误信息;用他们的话来说,出现的错误比他们之前见过的都要严重。

不过真正让人抓狂的事还在后头。我问,他们是不是在内部其他地方使用这个发行版(CentOS 版本5.6)。

对方告知:“是的。我们在许多机器上使用这个发行版。但是我们从来没有更新过。当初安装完毕后,我们就没有理睬过。”这就是使用 Linux 发行版的真实写照,不难发现那么多用户有多侥幸。一旦安装上去,可以正常运行,用户从来就不、根本就不更新。

实际上,如果其他 ISP 也是这样子管理基于 Linux 的机器,那就意味着,新的安全漏洞公之于众后,他们没有及时更新系统。为了防止基于 Linux 的机器因开始进行简单的更新而变成一堆废物,许多 ISP 任由机器(及其客户)暴露在各种各样的恶意攻击面前。

从我的切身经历来看,Linux 是一款优秀的系统,是一款健壮的操作系统,是一款灵活的操作系统。但就是无法同时做到优秀、健壮和灵活。它不是一款优秀、健壮又灵活的操作系统。

不信的话可以试试,保准你尝到苦头。还有最后一点是,别对我说我不清楚自己在干什么,于此因此抨击 Linux。我很清楚自己在干什么,也很清楚维持一台简单的 LAMP 机器运行显然需要具有哪些要素。

对于有着正常生活的所有人来说,幸好还有 Windows。

延伸阅读

评论