2007年7月2日

Ubuntu的套件哲學

以下是節錄自UbuntuTW Guide

Ubuntu 組件庫的哲學

因為 Ubuntu 原生於 Debian, 所以也是對於自由很堅持,因此希望把自由軟體和非自由軟體拆開來放。有些是因為人力的問題,有些套件是在 Debian 裡面有,但是不被 Ubuntu 官方支援的。所以 Ubuntu 的處理方式是把它們拆成以下四大主要組件庫,類似 Debian 一樣,讓使用者選擇需要。前兩個 Main 和 Restricted 是官方正式支援的,Universe 和 Multiverse 是不被官方正式支援的。而 Restricted 和 Multiverse 裡面是 non-free 的軟體。

  • main

大部份常用的自由軟體都會收編在 main 裡面,這裡面所含的軟體需要完全符合 Ubuntu 對自由軟體的定義,詳細規定請見http://www.ubuntu.com/ubuntu/licensing。因此通常使用 main 就可以應付日常所需。而 main 裡面所有軟體,都是官方支援的,所以 Ubuntu 將會提供 main 的安全更新和技術支援。而它的角色和 Debian 裡面的 main 差不多。

  • restricted

裡面所含的是非自由軟體,通常是不公開程式碼的程式或者授權不符合 Ubuntu 的要求。例如顯示卡驅動程式等等。雖然是非自由軟體,但是因為這些都是比較重要的非自由軟體,所以 Ubuntu 在符合該軟體授權下,將會進行穩定性上的測試,並也提供安全更新。因為不是自由軟體,所以 Ubuntu 在遇到問題時不一定能解決,所以維護品質沒有 main 那個好。桌面使用者通常都會使用 Restricted 這個組件庫,來對多媒體支援有比較好的效果。

  • universe

這裡面大部分的軟體都是自由軟體,而且幾乎都是包含在 Debian 裡面的 main 中。但是因為人力上的問題,所以 Ubuntu 無法親自去包這些套件,而是直接由Debian 裡面抓下來從新編譯,或者是直接從外部程式碼自動編譯出來的。不管怎麼樣,這裡面的軟體是不被 Ubuntu 正式支援的,Ubuntu 雖然有提供它的安全更新,但是不保證能即時修正或能穩定運行。例如國內有名的打 BBS 軟體、 PCManX 就放在這裡面,或國內有名的輸入法程式 gcin 也是包含在這裡面。Ubuntu 預設沒有啟用 universe 套件庫,所以想要用的人得自己在 sources.list 啟用。

  • multiverse

裡面的軟體都是非自由軟體,但是因為重要性不足或授權的因素,所以放在這裡。而這裡的軟體也是不被官方正式支援的。而和 universe 一樣,Ubuntu 預設也是沒有啟用它。

而除了以上這幾個組件庫以外,它還有其他附屬的組件庫。因為這些組件庫在穩定版出來以後,就不會再更動,所以當有漏洞的時候怎們辦?或者有 人懶得每半年都更新一次,但是又想要在舊版 Ubuntu 裡面享用一些比較新版的軟體時,總不能自己編譯和搞定 library 的問題吧!所以在上面四大組件庫,都有以下三個分支。

  • security

穩定版本正式釋出後,如果程式有重大安全性上的問題,將會在這裡更新。而這裡所謂的更新,通常只會打上 patch (這裡指原始程式碼的修正檔。), 還是同一個版本,所以功能也不會增加。因為 security 套件庫是針對系統安全而更新,所以裡面大部份更新都和伺服器或系統架構有關。而這個組件庫預設是被開啟的。

  • updates

這也是在穩定版釋出後,提供系統更新的一個方式。但是和 security 不同的是,這裡所做的更新都是和安全性沒有關,而是和程式的 bug 相關。例如某套桌面軟體有時候會當掉,而這個當然和系統安全沒關係了,這種更新就會放在這裡。updates 裡面的更新和 security 一樣,也只做 patch, 所以也是同一個版本,不會有新功能。這個組件庫也是預設被開啟的。

  • backports

例如 6.06 (Dapper) 中附的網頁瀏覽器是 Firefox 1.5.0.3, 但是在穩定版釋出後,也許這段時間裡面出現了 1.5.1, 1.5.2, 1.5.3 等版本,但是在主套件庫中軟體是一定不會更新的,而預設開啟的 security 或 updates 套件庫除非是有安全性的問題或者是有些 bug,否則不會更新。就算是因為安全性或 bug 而更新,也通常不會換成新版的。所以 backports 就是為瞭解決這樣的問題,開發者會將新版的軟體就會放在 backports 中,讓使用者使用舊版發行版但是可以用到比較新的套件。而通常在 backports 中的程式都是和桌面相關,而不會去更新到系統或伺服器架構,這樣才能保證系統運作穩定。而預設 backports 是沒有使用的,所以要自己修改 sources.list 來啟用。

 
備註: 使用者可以要求希望哪些軟體進入 backports, 詳細辦法可以參閱http://backports.ubuntuforums.org

各種不同的 Ubuntu 分支

Ubuntu 原先釋出的版本是預設採用 Gnome 這套視窗管理程式,但是在 GNU/Linux 的世界裡面有許多種的桌面系統,或者因為版本的訴求與某些使用理念不同,所以 Ubuntu 目前有五種不同的安裝版本可以使用。而這幾種安裝版本的組件庫是採用一樣的,它們可以採用不同的光碟來安裝,安裝後就是預設為不同的衍生版本,因為採用同 樣的組件庫,所以您當然可以在安裝後切換成別的衍生版本。實際上各個衍生版本都是以一個叫作虛擬套件的套件包來控制。也就是那個虛擬套件是空的,但是因為 裡面設定了相依到很多該衍生版所需的套件,所以安裝那個虛擬套件,就會自動把該衍生版所有套件裝起來。安裝方式就是使用這個指令 apt-get install $<$該衍生版套件名稱$>$, 當然這是是給各位一個概念,詳細的安裝說明會在後面提到。

沒有留言: