為什麼很多人,尤其是 SA(系統管理員),認為相較於 Debian,Ubuntu 是一個糟糕的 Linux 發行版?
希望看到技術層面而非文化、商業層面的答案。
早年剛開始接觸Linux時接觸過 RedHat、Fedora、Debian,但尚未入門就轉向了對於初學者來說更為易用的Ubuntu,此後一直採用Ubuntu作為自用的Linux發行版。工作中用過 Debian、RedHat 伺服器。雖然我贊同 Debian 的包管理和文件組織方式要優於 RedHat,但由於多半是以普通用戶而非 SA 身份使用 Debian,因此對 Debian 和 Ubuntu 的區別沒有深入的認識。
本來只是打醬油路過,後來想給自己一個小挑戰,清清楚楚的闡述一下我一年前的觀點。
一、認為某個東西糟糕是很主觀的
Ubuntu是一個當下非常流行的發行版本,相信它也糟糕不到哪去。很多人(尤其是系統管理員)認為Ubuntu相對於Debian很糟糕,可能是在某些特定使用情景下的主觀判斷。
那為什麼大部分SA對Debian比較有愛呢?(這本身可能就是個偽命題,但我不打算深入討論。)下面分析。
二、Debian為什麼受到更多SA的青睞
幾乎所有情況下,SA無法單打獨鬥,SA是團隊(公司)的一員,為相同的團隊目標工作,確保伺服器系統的穩定性,可用性,安全性,性能和可擴展性。當面對如何選擇Linux發行版本時,需要考慮以下幾點:
- 自身(與團隊)的習慣和對發行版本的熟悉程度
- 項目的技術選型(傳統成熟技術,還是激進先鋒技術)
- 發行版本可獲得的支持(支持需要付費,還是社區型支持)
- 發行版本的流行普及程度,健康狀況
- 維護成本(這個包括很多方面,主要是包管理,debug,自動化安裝,升級成本,溝通,文檔)
1. 自身(與團隊)的習慣和對發行版本的熟悉程度
發行版本的選擇,最好的情況就是選擇你最熟悉的,這樣風險最小,效率高,出現問題可以快速找到解決方法。同時,如果是在一個團隊中,還需要兼顧同事的使用習慣,選擇一個大家都不熟悉的系統,帶來的弊端是顯而易見的,無形中增加了很多不必要的成本,降低團隊整體的戰鬥力。
Debian是歷史悠久,也是相對標準的系統。它很多方面都比較保守,使用stable的倉庫,幾乎不用擔心出現激進的變化。(例如,Ubuntu新版使用了upstart代替了init。)
2. 項目的技術選型(傳統成熟技術,還是激進先鋒技術)
這個和整個公司的業務和項目有關,如果你所在的團隊開發使用的技術比較成熟,例如php應用,那麼選擇哪個發行版本似乎都無關緊要。但如果團隊的開發,需要用到各種特別的技術(NoSQL類, Python, Ruby, 各種MQ, Node.js, varnish...),就必須考慮到發行版本的個性和特點,選擇最容易部署上述技術的發行版本。有的團隊氛圍就是追求最新,最先鋒的技術,對發行版本的選擇自然不同。
Debian相對適合於傳統成熟的技術載體,對於先鋒技術的支持較為保守。很多新技術對Ubuntu支持更加迅速,文檔和支持都將Ubuntu作為標準。
3. 發行版本可獲得的支持(支持需要付費,還是社區型支持)
Debian和Ubuntu都不提供商業支持,RedHat的系統是需要付費支持的。這意味著當你出現詭異的系統問題,能獲得幫助的途徑和方法不同。Debian和Ubuntu的社區都較為活躍,出現問題最好的方式就是郵件列表和論壇。如果團隊有能力支付系統支持費用,選擇商業髮型版本也是不錯的。
4. 發行版本的流行普及程度,健康狀況
流行和普及程度,能在遇到問題的時候節約時間。因為你遇到的問題,之前可能已經很多人遇到過了,只需要Google一下就有答案。另一方面,更加流行和普及,也能讓你在招聘新人和團隊合作中節約溝通和學習成本。當然這個發行版本必須健康,年久失修絕對是危險的。
5. 維護成本(這個包括很多方面,主要是包管理,debug,自動化安裝,升級成本,溝通,文檔)
不同的發行版本,維護成本相差非常大。Gentoo,Archlinux在安裝,升級,部署方面成本都要高很多。我提到了幾個方面,可能不能完全覆蓋到,但細小差異帶來後續的問題,成本不可不計。很多發行版本都有自己的個性,創造自己的標準,會讓你查找文件,配置,debug方面浪費很多精力。因為這些差異,你也需要特別付出時間溝通,並在文檔中特別提及。不要小看這些差異。
三、好壞是相對的,選擇合適的最重要
綜上所述,SA如果說Ubuntu相對於Debian很糟糕,我想他是特指在伺服器操作系統中,對於穩定性要求高的業務里,更加合適。這是一個綜合權衡穩定性,易維護性,安全性,再綜合技術團隊和業務需求的結果。SA 也分很多種,所以不能一概而論。有專職的,為別人服務的 SA。有為自己的機器維護自己環境的 SA。
但是一般來說,debian 分 stable, testing, unstable 三個版本,unstable 版本的軟體通常版本最高,而 ubuntu 裡面配的軟體常常比 unstable 版本還新,這種冒進對於推動自由軟體桌面的發展可能是有利的,但對於 SA 來說它顯然並不是優點。也許某些 SA 基於這個考慮,因而 debian 顯然比 ubuntu 更適合。
至於包管理問題看各個人的態度吧,如果一個 SA 能力特彆強,他怎麼做都可以,只要他能解決好所有可能出現的問題,只要他有足夠的精力。
不過如果專職 SA 的話,我個人是非常反感那些拋棄系統包管理,全部自己編譯軟體的 SA 的,因為專職 SA 要幫別人管理機器,而不是管理自己的機器。人家一個發行版,成百上千號人遇到的和已經解決的問題,而在你來說,如果全部自己編譯,你的系統就成了一個土製的私人發行版,我作為用戶來說,遇到問題找誰去?我如果告訴你,我這軟體在標準 debian 上跑了沒問題,在你的機器跑了有問題,你能迅速解決?
好吧這就是我實際上的真事,我自己開發環境直接配 debian 跑了。到了生產環境,機器歸 SA 管,這沒問題,但我寫的程序在他機器上部署不過,怎麼辦?SA能全程幫我解決問題?理想情況應該是這樣,實際上常常是不能,因為他不可能熟悉每個人自己寫的程序,而問題也許不是出現在那些程序,而出現在那些程序依賴的庫的不同版本,等等——最後還是得我自己去查問題,而查到的結果最終還是:SA編譯某軟體時編譯設置不正確,修改了才好。。。——我說當初就用系統包管理的這些問題不就都不存在了么。
回到題主的問題:debian 在伺服器上確實用得比 ubuntu 更廣,這是事實,所以它也一定程度上受到了推動,為了需求省事靠譜的方案,用 debian 屬於非常自然的選擇,這更多的時候只是一種習慣,一個有能力的 SA 確實可以應付任何的自己最熟悉的發行版,甚至定製自己的發行版。不利用現成的包系統等於沒有用好軟體的槓桿作用。
糟糕的包系統讓人想砸機器的心都有。Ubuntu Server的包管理系統實在讓人不爽。可以看下Linode的使用率統計
http://www.linode.com/about/
我現在看的結果是:- 56% of deployments are Ubuntu
- 21% of deployments are Debian
- 17% of deployments are CentOS
- 2.2% of deployments are Fedora
- 1.8% of deployments are Arch
這數字確實不說明什麼,但是某些人只顧發泄自己感情的回答居然一大堆贊同我也真是挺無語的。
受邀留爪。我帖子少,但黑 Ubuntu 絕對喜聞樂見的。
1. 不是 SA,不懂 SA 的思維方式。猜測是內存佔用?風聞某大北郵 SA 用 64 MB 的 VPS 跑 Debian 還能帶起 VPN 服務。。。可能說出來沒人承認,我覺得最大的因素是習慣。從學長到學妹都是用的 Debian 學的,所有人都告你用 Debian,真當了 SA 它不用 Debian 難道給自己找麻煩么,SA 就是:預見麻煩,然後躲開,能挺住就挺著,磁碟不滿那我絕不清理回收站,能不擦屁股就不擦屁股,重裝系統快那我絕不給你殺毒。。。
2. Ubuntu 糟糕在於沒人知道它在搞什麼灰機。Release Note 那叫一個寒磣,*.04 到 *.10 的變更我一個人一個月就能搞定(包括 Debian 給他們搞的部分,比如 GCC 4.6.2 升級到 GCC 4.7.1, 這活兒根本就不是他們乾的),他們一堆人做半年還好意思各種 IT 外媒投稿。然後 *.10 到 *.04 還敢跳幾個 Alpha(因為他們也知道 Alpha 主要更新就是換壁紙)。唯一一個需要他們做的就是 Unity。。。從 11.04 到 13.04 才出了一個 5。。。有 Unity 之後他們發布的更勤快了,做幾個往 Amazon 提交用戶數據的 Lens 就敢發一個版本。。。還有關心 IT 外媒的可以發現,這貨就連 VLC 的 ppa 從 2.0 更新到 2.1 都有臉去投稿。。。圈內做發行版開發的都引以為恥,當初 Fedora 的維護者老梁說想在世界末日前跳船,有人建議他換 Ubuntu,他就直接說我還沒有低到去用靠壁紙刷版本號的發行版,臉打的啪啪響。
另外一個糟糕點,Ubuntu Tweak。主席的成功就是 Ubuntu 的失敗。主席一直在成功,那麼 Ubuntu 就一直在 lose。GNOME 雖然糟糕透頂,但 Oven 曾經有一句話說的很好,我們要做一個不需要 Tweak 的發行版(注意,GNOME 和「發行版」是一個槽點)。
第三個糟糕點。他們基本就是在賣一個死物。把 11.04 和 12.04 的兩個五年支持版拿來比比,發現你其實換張壁紙就能再熬五年。Canonical 做市場在做全球預裝。說清楚了它的玩法和山寨機的玩法是一樣的,就是鋪貨。但問題是「沉默的大多數 Silent Most」是絕對會買回去裝 Windows 的。對 Red Hat/SuSE/Oracle/B1 System/Google/IBM/HP 這種有 *nix 業務公司完全夠不上威脅,不然為什麼沒有人狙擊它,而是「哦,這塊你要啊,好的,給你」,它們看到接盤俠做夢都要笑醒啊。說清楚了,它依賴的發行版 Debian 的開發比較散漫放羊,沒什麼壓力出新版,它這東西人家別的公司發發力份額隨時就搶掉了。仔細琢磨它和 Debian 的 Release Circle 你就會發現 Ubuntu 刷版本號除了宣示 Ubuntu is not Debian 沒有別的實際意義。。。
第四個糟糕點。Ubuntu 在 Linux 根本不那麼好用的時候宣示自己簡單好用,於是就造就了一堆怪傑。哦,我得屌,所以我不用 Windows,所以我用 Udows。用五年,shell 一次沒打開過,出現問題就跟 Windows 一樣重裝系統。盜版 Windows 不要錢,何苦找罪受?下定論:用 Ubuntu 的(至少論壇里那幫),不知道什麼叫 Linux。真正做開發的 Ubuntu 保證吐你一臉,你拿個 Unity 在 Lens 裡面給我找個內核開發包裝上?學習曲線很陡峭,而且學完之後完全沒有普遍適應性,因為你要裝新利得,但問題我已經有了軟體中心呀。裝完新利得你還要搜索 linux-headers。blabla。。。總之用 KeeKun 的話說,Ubuntu 在中國和山寨機的潛在用戶是一樣,就是城鄉結合部染黃毛那些傢伙。少來簡單易用了,虛心聽聽圈裡的傢伙們怎麼說,你舉的簡單易用的例子人家能給你噴出翔來。。。
認識一些用 Ubuntu 做開發的人,都說 Ubuntu 很糟糕,但能用,他們自己對發行版沒特殊需求。shellexy 用 Ubuntu,但他只用命令行。。。Levin 用 Ubuntu,但它給淘寶開發內核和資料庫。。。至於用戶,那基本屬於被大家放棄的那部分了,從來沒人聊。高山流水本來就得曲高和寡才有品味,歐巴 gangnam style 還流行呢,用戶在 Ubuntu 傻拿到你這兒也一樣聰明不了,聊了有意思么。。。
over。
就4個字:有毛優勢?
Ubuntu的「優勢」主要在桌面,伺服器這邊既然兩個都可選,為什麼要選資歷小的的ubuntu?有毛優勢?ubuntu 是一個個人電腦發行版,它的設計目的是:簡單,易用debian 是一個穩定的社區發行版,它分為stable, testing, unstable. 其中stable版本的設計目的是:穩定,穩定,真的很穩定。在伺服器層面,必須要有很長的歷史來證明你足夠穩定,才會贏得市場的信心,否則一般都是不會放到生產線上的。
我覺得這個問題沒那麼複雜。只要是一個東西被用得多了(尤其是低端用戶),就自然容易受到「高階」人士的反對。就比如現在iphone成街機了,「高端」人士們就不悅了,不得不把iphone扔掉,換上沒那麼多人用的東西(關鍵在於價格貴)
咦,連城大牛4年前的newbie問題^o^
老齡Debian伺服器用戶表示在deb系裡儘可能選擇Debian而非Ubuntu的原因是前者的質控還是比後者靠譜多了。從Sarge用到現在,出問題都是自己no zuo no die,並沒有因為發行版本身的bug而破環系統運行。相反Ubuntu的質控就糙好多。。。。
不過隨著Debian改成按時間出新版本,質量也不如以前了。
主命題有誤。應該是SA認為Debian較之Ubuntu更適合做伺服器,而不是糟糕與否的問題。
不同的角色,基於其看問題的角度會有不同的看法。所以我想先明確一下自己所處的角色,以供大家做為衡量我言論價值的參考係數。
我想,對於題主的問題,會存在以下幾個類別的角色:
1、linux系統開發者和基於系統底層的應用開發者;2、伺服器運維者;3、web開發或java類基於虛擬層的開發者;4、系統桌面的使用者(純桌面用戶,不涉及開發)。我屬於2、3、4類。我想,針對題主的問題,第1類人員的與其崗位鎖定的看法應該沒有意義,因為題主要了解的是第2類人員相關的問題。
第2、3、4類人員的一個共同的特徵,就是對於底層的技術細節不關心,關注的是系統的使用性,是對於其所關注的領域的易用性、穩定性、發展性和娛樂性(我覺得一個系統,對於非底層開發人員來講,基本上就這4性,其中娛樂性是與伺服器相關需求無關的)。
環境簡介畢,歸入正題。
1、題主似乎是初步接觸linux系統,所以說一下以我的角度所理解的關於各發行版的看法。
對於fedora和ubuntu,除了包管理方式不同之外,從非系統底層開發的角度看,我真的看不出任何差別。內核一樣,GNOME一樣,無非是有無unity,這不過是個應用軟體,有與沒有有什麼差別嗎?完全可以把ubuntu改得看上去像fedora一樣,也可以把fedora改得像ubuntu一樣。除了包管理方式,對於shell的操作、對於GNOME的操作,它們真的沒有本質區別。
fedora和redhat,ubuntu和debian的關係就不說了,一脈相承,大同小異。
2、為什麼說Debian比Ubuntu更適合做伺服器平台。
在ubuntu使用unity初期,我實在受不了這詭異的unity,於是轉向debian。但debian真的不適合做桌面系統,它的圖形界面的容錯性很差,動不動就會導致配置混亂的。但做為伺服器,debian確實優於ubuntu,雖然我接觸debian只很短的時間。debian是保守的,它的系統可以幾年不更新。保守意味著穩定,不會因新程序的各種bug導致系統應用的詭異情況出現。它像一個老成的長者,不到必要的時候不輕易做出改變。
ubuntu的升級會把很多新程序並沒有測試到的bug帶到系統中來,如果對於一般桌面用戶,這些bug可以忽略不記,但對於構建於系統應用平台,就很難找到問題到底出在了哪裡。
而且(這一點我不能肯定,從我的感受上是以下這樣的),debian的程序安裝是需要安裝盤認證的,只有你安裝系統的那張盤可以做為認證鑰匙,否則你不能向系統內安裝程序。(這意味著,黑客即使獲得了root許可權,也很難向系統安裝其它要使用的工具)
ubuntu是通過sudo從網路向系統內安裝程序的,這對於普通用戶是方便,但對於系統管理來說,是不安全因素,因為一旦黑客獲得root許可權,就可以對系統為所欲為了。
由於以上幾個關鍵因素(更穩定、更安全),所以Debian是一個優於Ubuntu的伺服器系統。
(但實際上我的伺服器都裝的ubuntu,沒啥特別的原因,就是覺得還是Ubuntu熟(其實和Debian也沒啥區別),另外Debian安程序太麻煩,我的系統里沒啥值得黑客玩命搞的東西)。3、Ubuntu真是一個優秀的桌面系統。至12.04(我只用長期支持版,不用短期版,因此沒提12.10),ubuntu桌面的容錯性已經相當不錯,i不會輕易地崩潰(實際情況是,我的桌面從沒有崩潰過。關鍵可能是我從來不鼓搗那些3D特效);unity的功能也比較完善了(我曾經切換到gnome3過,但由於它的前端用的是js解析,速度會有明顯的延遲,同時gnome3下沒有像unity這麼優秀的文件查詢器,所以又切換回unity了。使用GNOME3時,我曾大讚過GNOME3,輕視過unity,但當我轉回12.04的unity時,一種解放的感覺油然而生)。不小心路過,作為一個兼職sa的開發人員,我始終覺得,伺服器系統要和開發系統對應,比如,伺服器是Debian,我會用Ubuntu. 如果伺服器是Centos, 我會用Fedora. 我感覺,除了包管理器以外,基本上發行版都差不多了... 除了界面,ubuntu要好看很多,我沒覺得和Debian有什麼差別..我個人也在周旋Fedora 和 Ubuntu. 目前的感覺,其實Ubuntu就算每個版本換換壁紙,很多東西也絕對比Fedora發展的快,比如,系統層面的東西,最近因為工作需要,要在15寸的Macbook Pro Retina上裝Fedora 17,發現,號稱支持EFI的Fedora根本沒有辦法在最新的機器上啟動,Ubuntu就可以.我覺得,某些時候,就這麼一個小細節是致命的,絕對可以決定你去安裝什麼.
對於我來說,包管理是很次要的問題。基本上生產系統上所有的服務進程的binary都是自己編譯的,採用的發行版只是作為一個Boot系統而已。很多核心軟體、庫在小版本號級別上區別就很大(比如python),或者編譯選項非常重要(如php)。所以包管理方準備的二進位文件並不適合我
由於重要的軟體都是自己build在private prefix里的,所有「文件組織方式」完全是自己決定的。這樣有一個很大的好處:換一個發行版也不需要學新的格式和路徑(想想看節省了多少時間!)。很多情況下只要把private prefix "scp"過去就行了
另外一點很重要的是,我只用sysv init,痛恨upstart、systemd這些亂七八糟的東西。我喜歡簡單、透明、無法隱藏不明項的順序啟動系統;不喜歡內部觸發機制像麻花一樣的東西個人案例,沒有普遍性。我的ubuntu在一次升級後開機無法引導了,那時候我很菜不知道怎麼解決這個問題,之後用了debian,用了2年多沒給我添過麻煩,省心,linux系統只考慮debian。
怎麼說呢,你認為SA會覺得windows 2003好,還是windows XP好呢?
什麼都不懂,只接觸過嘗試過Ubuntu(還有新氧、深度、雨林木風這類)、Fedora、RedHat的我認為,Ubuntu被人說糟糕就是因為它流行的夠廣。
ubuntu喜歡自己搞一套,另起爐灶,每次變化太大,毫無章法~
我是從ubuntu轉debian的,你每天回家後,使用ubuntu兩個小時,3個月後,就知道它毛病多了。
1、ubuntu主打桌面,尤其是新手用戶,所以有既定印象2、ubuntu早期版本的確不適合當伺服器,現在好多了
桌面就用Ubuntu 追新帶來的稍微不穩定和bug多,但是各種方便伺服器就用Debian bug相對Ubuntu少,但是用起來稍微麻煩點,不過伺服器嘛都是專業用戶 有錢就用RHEL只要給錢什麼都不用做了!省時省力!沒錢以後想過度RHEL就先用Fedora
instagram都用ubuntu,AWS上的EC2上都有支持ubuntu,怎麼就爛了
推薦閱讀:
※學習 Linux ,Ubuntu 單系統和 Ubuntu 與 Windows 雙系統,哪一個較好?
※linux下有什麼好用的郵件客戶端?
※對於計算機專業的學生,使用 Linux 操作系統有什麼好處?
※Linux上有沒有類似 Win下 Notepad++ 的軟體?
※為什麼我在Ubuntu下設置文件許可權為600,然後自己也看不了了?