一句新的格言是,對於有著正常生活的人來說,幸好還有Windows。
實不相瞞,這其實是一篇不停地大聲抱怨Linux的文章。但是現在我生氣得很,沮喪得很。眾所周知,Linux人員打心底裡就瞧不起沒有夜以繼日地琢磨Linux發行版細枝末節的人,但我有句話要說:我可不像你們這樣Linux人有的是大把時間來鑽研技術。
我受夠了Linux
我受夠了。我受夠了所有拼湊起來的各系統部分必須版本剛剛好,必須有剛剛好的依賴關係,必須以剛剛好的方式來編譯,必須選擇剛剛好的時機,還必須數量剛剛好的的人員在剛剛好的時間步調一致。
我受夠了所有不同的軟體包管理器。一些程式碼使用某一個軟體包管理器來分發,另一些程式碼則使用別的軟體包管理器來分發。受夠了只要按照資料不充分的HOWTO檔案,在終端視窗中機械地輸入一行行程式碼,可以將模組下載到Ubuntu上,卻根本無法下載到CentOS或Fedora上,就因為沒有按剛剛好的順序來指定程式碼儲存庫。
我受夠了所有不同的外殼程式和使用者介面。除非你建立起一條穩定的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。