哪些Linux發行版是滾動發行(Rolling Release)的?
最好談談它們的優缺點是什麼。
最知名的應該是 Archlinux,不過除了 Arch 之外也有別的很多:Rolling release
優點是省事,缺點是更新容易出問題,好多用 Arch 的人都有因為升級某個包導致整個系統倒地不起的經歷。一個程序被編譯成二進位包以後,就很難再修改了,所謂的升級,都是一樣刪除原有文件,替換新文件的過程。每次裝軟體的時候,裝過的軟體都會被記錄下,方便卸載的時候刪除。然而fedora/ubuntu這類發行版本,卻發現他們不敢直接針對記錄進行逆運算,因為文件之間會有共用,卸載一個軟體,可能會影響到其他軟體。於是他們只能很無奈的,只刪除當前軟體包,而留下許多關聯包,於是他們只能遵循只殺不埋的原則,你最好清楚自己會用到哪些包,而不是裝了卸,卸了裝。gentoo/funtoo這類發行版本,比較負責一點,他們記錄的信息更細緻一些,能夠針對系統目前還裝著的軟體進行一次依賴計算,刪除當前系統不被需要的包。所以裝和卸都不是很快,但可以放心折騰,不會有垃圾存在,對有潔癖的人是好東西。arch這類發行版本,處於前兩者之間,比較「二」的存在,即佔了所有便利,也佔了所有缺失。
按照正規的定義,絕大多數發行版都可以做到。
就是所謂升級不用重裝。
debian兼有所有的發行方式。例如debian unstable 是純rolling的,testing和stable是階段性rolling的。
事實上,arch,fedora,opensuse,ubuntu,全部可以做到。
只要你足夠熟悉,任何發行版不會有太大區別。怎麼感覺大家都是Arch控呢?其實debian,ubuntu,suse,fedora這樣的linux,還是有版本的概念的所以, 嚴格來說,Arch和Gentoo才是真正意義的滾動升級的linux
真正的滾動升級是沒有像 ubuntu/debian/mint/opensuse/fedora 那樣的明確版本號的,以日期標識的。如 arch。
純正的只有 arch 系的發行版。
不純正是 fedora/suse 這種 rpm 系的,他們都有一個目標是下一個版本的開發中心,你安裝這個開發中心的iso就是滾動升級版了。當然 openSUSE 也獨立出來一個 Tumbleweed 滾動升級版,但它還是在用做發行版的習慣去做它。還有是像 gentoo 這種的,兩種特性都有,你啥時候 emerge world,啥時候你就得到一個新發行版,不管 gentoo 12.2 有沒有出,但它還是有 12.2。
滾動升級版對應的是發行版,國內經常用錯「發行版」一詞,我入 Linux 的門晚,不然早給你們糾正過來了。國內常說的發行版概念正確的說是「分發版」(Distribution),包含了滾動升級版(Rolling release)和發行版(release)。
滾動升級版是指 arch 這種,理論上會設置兩個更新源,一個測試testing,一個穩定stable,testing 用來測試新的軟體和升級過的軟體能否與原有系統兼容或編譯無錯,stable用來給正常人用,當然它的stable甚至比有些發行版的testing都要新,除非是這個軟體久久不更新,其他發行版慢慢趕上來了。沒有版本號錨定,理論上發行版的維護者要隨時隨地保持 stable 源穩定。對於這類發行版是沒有傳統的維護這一概念的,所有操作都叫更新。
發行版有版本號錨定。比如 openSUSE 12.1 發布,它源里的軟體包只會進行安全更新,如內核的 3.2.1 最後一個數字的小範圍更新,NetworkManager 0.9.1-1 最後一個釋出號的小範圍更新,即使有新的如 NM 0.9.2 的推送,也只是單個或少數幾個能大幅改善處境的軟體,像 GIMP 2.6.8 一下子更新到 2.7.5 這種事情是不會做的,什麼時候做呢,以發行版為單位的版本更新時做。也即該發行版始終錨定在發布當天的那個狀態。這也是為什麼 CentOS 6 遲遲不發布,伺服器上 CentOS 4/5 用了五六年還能繼續用的原因。你無論什麼時候,下了它的 iso,裝上,甚至不安裝必要的安全更新都可用,跟 XP SP2 盜版盤一樣,有 SP3,但你可以選擇不裝,而 arch 就明顯不是了,它的終極目的不是提供版本號錨定和 iso,它提供 iso 方便你安裝,裝好之後還是要打開源與 stable 同步。開發者對已發行的發行版進行的操作叫做運行維護。只要發行版官方不宣布對其不再官方支持(當然非官方你還是可以用,只是官方不再推送安全更新了,就像 XP 一樣),那它就始終在安全性和穩定性上沒有問題,只是軟體可能比較舊,不和你的口味不和時代了。
另外在開發上,開發者也不必時時刻刻都保證類似 arch 的 stable 源那樣的時時刻刻穩定,他們的目標是整體打包成下一個發行版的 開發源 中(Arch 的 testing 源不叫開發源,叫測試源,它是測試穩定性和全域兼容性的,開發者們也想讓它像 stable 那樣一次成型,推送進去就是穩定的,但現實說不可能。而開發源則是不可以給普通用戶做日常使用的更新源的源,甚至開發者自己都不用,比如你從 Factory 中獲取了一個 nightly build 的 iso,裝上了,可能當時你人品過硬,全部軟體可用,但後續從該源中的更新很可能就推送你一堆找不到依賴錯誤,因為作為開發源,它是可以暫時的 fail 的,這時你只能自認倒霉),不必時時刻刻沒有編譯出錯,只要臨發布當天是沒有編譯出錯的就可以(多說一句,那天你推送和維護式開發的軟體出錯,那你就進不去了,一般情況下只能等下一個發行版本了,有時安全更新也可以推送進去,但非常非常少,除非是構成系統基礎的東西,但這樣的東西一般會採用整個發行版跳票的方式來等它)。開發者理論上只對錨定了版本的發行版提供支持,bugzilla 一般也只受理錨定了版本的發行版的 bug,它做發行版的目的就是提供穩定可刻盤分發的 DVD,CD,LIVEUSB。arch 的 bugzilla 你可以說我的那個軟體的某某版本不能用,你說 arch 20111018 的什麼什麼不可用那是找抽呢,人家早就不提供它的支持了,誰記得 201018 時候裡面的某某軟體的版本號究竟是個鎚子。。。而 openSUSE 你直接說 11.4 的網路管理用不了,所有開發者都知道你指的是 NM 0.7 系列,他們的假設就是你安裝了 11.4, 只從 Update 源接受更新。發行版不對兩個版本之間的某個你 home made 的「版本」負責,arch 同樣也不負責。發行版有歷史版本,arch 沒有。
好處通俗的說就是發行版可以一段時間不折騰,我認識 openSUSE 官方論壇的一位德裔版主,他出生在加拿大,他的母親也在那裡,現居德國,每四年回去一次。這是背景。他給他母親裝了 openSUSE 11.3 然後可以在德國呆四年,哪怕他母親的電腦軟體再舊,但是穩定可用的。這要是 arch 他媽媽會被玩死,每天都推送,每天都像拋硬幣一樣面臨穩定或不穩定的不確定性(arch 再努力,這種不確定性也是存在的,因為滾動升級版完全沒有發行版那樣的 ALPHA(開發預覽)/BETA(特性凍結)/RC(Bug修復)階段)。缺點就是開發者只針對特定版本提供支持,軟體離上游最新版有距離。兩者最終的效果都是一樣,只是個人偏好不同,半年不折騰,半年更新一次軟體和每天都升級,每天都有新版本軟體嘗鮮,明顯這是一個個人喜好問題。我知道的有Arch Linux和Chakra(原是Arch的一部分kdemod,現在已經是獨立發行版了)
用archlinux近4年的經驗,更新頻率越高越不容易出問題,總的來說還是很穩定的。我覺得滾動發行版最大的優點是能第一時間用到最新版本的軟體。對於開發者來說,這點是非常有吸引力的。
Ubuntu每次「發行版」升級,大方面還比較順利,但也是有一些小小的毛病可能會存在的。
Arch 神教大多是手殘黨。
占坑Arch是最出名的滾動升級嗎?Arch的滾動升級要控制好幾個Ignore包或者組就會穩定多了吧,比如我用的catalyst驅動,不支持xorg-server 1.12
不想挑起爭論,僅僅是表達一個意見。如果單獨從應用和穩定出發,我認為debian unstable 是目前最好的選擇。另外Arch的問題,可能是前些年的問題,最近一年多以來貌似沒犯過了,但是我聲明我在這個方面實際經驗不多,僅僅是感覺。
其實即使ubuntu,也完全可以自我的實現起滾動升級,只需要修改一下源而已。當然,這樣作也存在風險,但是我認為絕對不會比用release升級風險更大。關鍵還是運氣。雖然一直用 arch 但是沒有很明顯的感覺出滾動升級對我的意義. - -b
推薦閱讀:
※大型c++項目在linux下如何調試?
※到底學習 Linux 應該學習什麼?學習框架是什麼?
※哪種Linux發行版適合程序員做開發?
※Windows 環境下為什麼沒有免費的 PDF 編輯軟體?
※Linux 有多少個發行版本?
TAG:Linux |