3、以水平的觀點來看 Debian 特有的三大族羣制度:stable、testing、unstable
stable
由 『 stable 』 這名詞就能夠猜到八九分意思了吧,是的!這是 Debian 對外發行的版本,這個版本的最大特點就是穩定,但相對的各個軟件套件則一般不是最新版。
這個版本適用在最須要穩定的 Server 架設環境,所安裝軟件較少也較爲固定。
testing
『 testing 』 雖名爲測試版,實則已經至關接近於 『 stable 』 版本的程度,這個版本的軟件多半是在 『 unstable 』中經由維護、開發人員不斷的測試以後流入,因此在某種程度來講,其實已經作過初步的檢測,這裏頭的軟件大多也是至關穩定的,並且個軟件套件也都會比 『 stable 』 裏頭的新,不過以軟件總量來講則比上 『 stable 』 及 『 unstable 』 中來的完整、來的多。
筆者強烈建議若是想把 Debian 拿來看成 Desktop 平臺,『 testing 』 是個很不錯的選擇。
unstable
『 unstable 』對我來講纔算是 『 測試版 』,這裏頭最大的特點就是軟件更新速度快,幾乎都與該軟件同步,由於太新相對的使用 『 unstable 』的人也必須承擔更高的風險,有時候您可能會遭遇到一早更新完全部軟件後,發現有些軟件不能正常運做的情況,不過慶幸的是這種情形大概只會持續一兩天左右,由於我說過 『 unstable 』 的特點就是更新速度快,一旦有人回報問題,維護的人很快就會做修正。
若是你喜歡 『 玩 』 軟件,若是你不在意有時候系統有出現一些 truobles,那趕快試試這個版本吧!
3、以垂直的觀點來看 Debian 軟件的分佈:main、contrib、non-free、non-us
Debian distribution 是一個很注重 『 純 』 度的 Linux Distribution ,我說純是 Free 的純度很高,『 Free 』這個英文字頗有趣,但表明了自由、免費兩種含意,正由於如此經常形成初學者的困擾,國內不少相關書籍都各自出現不一樣的解釋,不過所謂 『 Free Software 』 原意應爲 『 自由軟件 』,而非 『 免費軟件』,何謂自由?就是你能夠對該軟件作任何你想作的事情,例如:你可使用、修改..甚至販賣它。這些都是自由軟件的特點之一,可是自由軟件是否是就沒有版權了呢?其實否則,它們或多或少都會宣告成幾種特殊的版權發行,最多見的有下列三種:
GNU General Public License (GPL) - ( http://www.gnu.org/copyleft/gpl.html )
Artistic License ( http://language.perl.com/misc/Artistic.html )
BSD style license ( http://www.debian.org/misc/bsd.license)
其中以 GPL 運用最廣, BSD License 最有彈性,版權問題並不在本篇文章的討論之列,法律也不是筆者的專長,有興趣的朋友請直接前往相關網址研究。
因爲 Debian 對 『 Free 』 純度的堅持,可是有時候有些軟件雖然不爲自由軟件,但卻至關的著名,例如: Mozilla ,這樣的狀況讓 Debian 陷入兩難,因而 Debian 對於旗下全部軟件套件 ( Packages ) 進行分類,底下就是 Debian Packages 的主要分類項目:
main
Debian distribution 最基本及主要且符合自由軟件規範的軟件 ( packages )。
contrib
這裏頭軟件雖然能夠在 Debian 裏頭運做,即便自己屬於自由軟件但多半倒是相依於非自由 ( non-free ) 軟件。
non-free
不屬於自由軟件範疇的軟件。
non-us
這個分類裏頭的軟件都來自非美國地區,當中可能有牽扯到專利、加密..等等問題。
4、區別版本的『 sources.list 』及兩個基本的軟件安裝指令:tasksel、apt-get
透過上一節的說明,相信您對 Debian 的分級制度已經有了初步的認識,總體的輪廓也逐漸的明顯,不過以現實中實際使用的情況而言,每種版本並不是是涇渭分明的。
『 頭上冒出了幾個問號了嗎? 』,簡單的說,就算我是使用 『 testing 』 版本的人,我仍是可使用 『 stable 』 或 『 unstable 』 中的軟件,這並非假設,舉個例子,目前僅 『 unstable 』 中提供最新的 Mozilla 軟件,若是您是使用 『 stable 』 或 『 testing 』 的人仍舊是能夠安裝 『 unstable 』 中的最新版 Mozilla ,怎麼作到呢?閱讀完『 由修改 『 sources.list 』 來決定軟件來源版本 』 這一小節,您就會清楚了。
儘管如此,筆者並不建議同時大量使用不一樣層級的軟件,由於不少軟件之間都有不一樣程度的相依性,強行的結果會形成更多軟件相依、相斥問題的產生,最終可能影響系統穩定與整個軟件升級制度的正常運做。
筆者我的使用的是 『 testing 』 版本,但因爲一些個別軟件如 Mozilla 、 Gimp 等等因素,免不了仍是會使用到部份的 『 unstable 』 軟件,使用至今也無大的 Troubles 出現,個人建議是越接近系統底層的軟件如:glibc、xfree86,越是要當心謹慎,由於這些軟件多半牽連普遍,一個不留神系統可能得從新再造?!
由修改 『 sources.list 』 來決定軟件來源版本
如何決定安裝的軟件屬於何種層級?方法至關容易,全部的信息都記載在 『 /etc/apt/sources.list 』 這個文字文件之中。
sources.list 檔案裏頭的設定格式十分單純,以下:
deb uri distribution [component1] [componenent2] [...]
底下就各個選項做細部說明:
deb
這一欄只有兩種寫法,分別爲 『 deb 』 與 『 deb-src 』,前者表示所指向的爲存放 binary 格式 ( 編譯好執行文件的軟件套件 ) 軟件套件的服務器位置,後者則爲 sources 格式 ( 包含原始碼的軟件套件 ) 軟件套件的服務器位置。
簡言之,通常咱們只想要安裝該軟件而不想要去從新編譯它時,就在這一欄填入 『 deb 』 , 若是你想取得某軟件的原始碼 ( sources code ) ,就得加入 『 deb-src 』 , 固然也能夠兩行都寫,以下:
deb http://http.us.debian.org/debian stable main contrib non-free
deb-src http://http.us.debian.org/debian stable main contrib non-free
uri ( Universal Resource Identifier )
uri 指的就是軟件套件來源位置,這些位置能夠爲系統內的某個位置 ( file ) 、能夠爲 CD-ROM ( cdrom ) 、能夠爲網絡遠程位置 ( http 、 ftp )..等等,當你下 apt-get 指令時,就會到這些位置去搜尋軟件數據庫。總括來講一共有 file 、 cdrom 、 http 、 ftp 、copy 、rsh 、ssh 等幾個參數,而比較經常使用的參數以下列:
file
能夠是你係統上的某個目錄,以下:
deb file:/home/moto/debian stable main contrib non-free
也能夠是你 mount 到本身系統裏頭的遠程 NFS Server,以下:
deb file:/mnt/nfs-server stable main contrib non-free
cdrom
這裏固然就是指光驅上光盤片裏的位置?,例如:
deb cdrom:/dists stable main contrib non-free
http
透過 http 的協議傳送,例如:
deb http://http.us.debian.org/debian stable main contrib non-free
ftp 透過 ftp 的協議傳送,例如:
deb ftp://ftp.us.debian.org/debian stable main contrib non-free
值得一提的是透過這樣的機制是很是有彈性的,來源位置幾乎能夠是網絡上的任何一個角落,不見得是要 Debian Office 站臺,我的製做的 .deb 軟件套件也能夠開放給網絡上的人使用,例如目前的 Debian 官方『 stable 』版本里頭的 Linux kernel 不是最新版的,而 bunk 網友本身幫忙作了最新版本的 kernel for debian package,並提供了 『 deb http://people.debian.org/ bunk/debian potato main 』這個私人的位置,則咱們能夠把這個位置加入 『 /etc/apt/sources.list 』 設定檔裏頭,再透過 『 apt-get update 』 就能夠取得 bunk 所製做的 for debian 的 kernel package ( 目前在 testing 裏頭已經有最新的 kernel 了,因此不須要在透過其它的來源來安裝 )。更詳細的 kernel 升級方法請參考 Debian 升級 kernel 真輕鬆 一節。
這樣的分享機制很棒 ! 由於 Debian 官方對於軟件篩選有必定的規定,若是某個軟件進不了 Debian 的 package tree ,但咱們又不想由 Source tallball 安裝, 咱們即可以透過這樣的管道讓咱們仍舊可使用 Debian 良好的軟件管理機制並且能夠安心使用額外軟件。
distribution
參數可分爲 『 stable 』 、『 testing 』 、『 unstable 』,詳細定義請參考 以水平的觀點來看 Debian 特有的三大族羣制度:stable、testing、unstable 一節。
component 參數共分爲 『 main 』、『 contrib 』、『 non-US 』、『 non-free 』 詳細定義,請參考 以垂直的觀點來看 Debian 軟件的分佈:main、contrib、non-free、non-us 一節。
瞭解 『 sources.list 』 的撰寫規範以後,咱們即可以經由修改此檔達成轉換不一樣版本的需求,例如在 『 stable 』 版本底下,咱們把 『 sources.list 』 內容記載的軟件服務器改成指向 『 unstable 』 , 以下:
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
#deb http://http.us.debian.org/debian stable main contrib non-free
#deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
#deb http://security.debian.org stable/updates main contrib non-free
# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable non-US
deb http://http.us.debian.org/debian/ stable main non-free contrib
deb-src http://http.us.debian.org/debian/ stable main non-free contrib
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
改成:
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
#deb http://http.us.debian.org/debian stable main contrib non-free
#deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
#deb http://security.debian.org stable/updates main contrib non-free
# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US stable non-US
deb http://http.us.debian.org/debian/ unstable main non-free contrib
deb-src http://http.us.debian.org/debian/ unstable main non-free contrib
deb http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free
deb-src http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free
如此一來即便身處在 Debian 『 stable 』 的環境底下,也能透過 『 apt-get 指令 』 去安裝 Debian 『 unstable 』 中的軟件。
關於 『 sources.list 』 一些注意事項
儘管藉由 『 sources.list 』就能讓咱們同時取得不一樣版本的軟件,可是有一點必須特別提醒你們,依照筆者的習慣,除了原先第一次安裝時的 『 sources.list 』檔案以外,我還會將這個檔案分別修改爲指向 『 testing 』 的 『 sources.list.testing 』以及指向 『 unstable 』 的 『 sources.list.unstable 』,如需安裝其它版本的 Debian 只需置換原來的 『 sources.list 』 再配合 『 apt-get 』 指令便可。
若是您堅持只維護一個 『 sources.list 』 檔也是能夠的,但請記住一個原則,若是您的 『 sources.list 』中同時包含了 『 stable 』、『 testing 』、『 unstable 』三種來源時,系統會以最新版本爲主,換言之,這麼作幾乎就等於設定爲 『 unstable 』 了,由於軟件版本的新舊爲 『 unstable 』新於 『 testing 』 新於 『 stable 』。
照這麼說根本就不須要混和使用,由於系統老是會認最新的嘛,其實會這麼作的同常以使用 『 testing 』 版本的人最多見,這是因爲 『 testing 』 裏頭軟件是三種版本之中最少的,因此有時候會找不到 Debian 裏頭 『 應該 』 有的軟件,這種狀況筆者就會建議, 『 stable 』 與 『 testing 』 混用,如此一來若是您要安裝的軟件不在 『 testing 』 裏頭,系統還能夠到 『 stable 』 裏頭去搜尋,若是仍是找不着那能夠確定 Debian 沒有歸入該軟件 。
若是您決定跟筆者同樣使用 『 testing 』 版本的話,請切記不要同時把 『 unstable 』 的服務器來源加進你的 『 sources.list 』,由於一旦更新完畢,您的系統也已經變成 『 unstable 』 版本了,切記!切記!
底下是筆者的 『 testing sources.list 』:
# See sources.list(5) for more information, especialy
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian testing main contrib non-free
deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free
deb-src http://http.us.debian.org/debian testing main contrib non-free
deb-src http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free
#for gnome
#deb http://spidermonkey.ximian.com/distributions/debian unstable main
#deb http://red-carpet.ximian.com/debian testing main
臺灣 debian mirror site 列表
我知道每一個朋友網絡品質不盡相同,以筆者爲例鏈接美國速度還不錯,可是必定有更多朋友連連上美國都有困難,不要緊,彆氣餒,您能夠試試底下的臺灣 Mirror 站臺:
淡江
deb http://ftp.tku.edu.tw/OS/Linux/distributions/debian/ testing main non-free contrib
deb http://ftp.tku.edu.tw/OS/Linux/distributions/debian/non-US testing/non-US main non-free contrib
debian 臺灣
deb http://debian.linux.org.tw/debian woody main non-free contrib
deb http://debian.linux.org.tw/debian-non-US woody/non-US main non-free contrib
中山
deb ftp://ftp.nsysu.edu.tw/Linux/Debian/ testing main contrib non-free
deb ftp://ftp.nsysu.edu.tw/Linux/Debian/debian-non-US testing/non-US main contrib non-free
apt-get 指令操做
我常跟朋友戲稱" 要學 Debian 只要學會 apt-get 這個指令就好了 ",固然這是玩笑話,也絕對不可能如此單純,不過我會這麼說是由於等到您的 Debian 系統徹底安裝完畢以後,您就會像我同樣退化到天天就只會下『 apt-get update;apt-get upgrade 』 指令了。 :-)
在 Debian 裏面,關於軟件的安裝、移除、升級徹底靠 dpkg 這個指令來完成 ( 關於 dpkg 更詳細的介紹,請參考 dpkg 一節 ),dpkg 指令功能很強大,但卻相對的複雜了許多,也形成使用上的不便,所以目前衍生出許多 dpkg 的前端 ( front end ) 軟件管理程序 ( 請參考 衆多的 dpkg 前端軟件管理程序 一節 ) ,幫助咱們簡化軟件管理的步驟,而 『 apt-get 』是我最爲熟悉也是最受 Debian 使用者喜好的一套指令式程序。如今也經有人將『 apt-get 』 移植到其它的 GNU/Linux Distribution ( 注一 )。
或許您被上一節 " 區別版本的『 sources.list 』及兩個基本的軟件安裝指令:tasksel、apt-get" 的『 sources.list 』搞的頭暈腦脹,不過筆者相信等您瞭解本節介紹的 『 apt-get 』 指令以後,必然有『 豁然開朗 』、『茅塞頓開 』 之感。
『 apt-get 』指令操做很是簡單,底下列出比較經常使用的選項及參數,要獲得最完整的信息請 『 man apt-get 』。
注意!!執行 『 apt-get 』 指令時需以 『 root 』 身份執行 !
apt-get update
軟件數據庫同步:
這是『 apt-get 』指令的起點,在下達任何 『 apt-get 』 相關軟件安裝或升級指令前,必定得先下『 apt-get update 』指令,這會讓系統依照 『 sources.list 』設定文件內紀錄的軟件來源服務器位置,進行軟件數據庫比對動做,如此才能知道目前系統上安裝的軟件跟服務器上可抓取的軟件版本是否一致,如不一致表示有更新版的軟件能夠升級或安裝,接下來的 『 apt-get install 、 apt-get upgrade 、 apt-get dist-upgrade..』才能完成後續動做。
apt-get install
軟件安裝:
安裝軟件最怕的就是軟件間的相依、相斥關係,在 『 前言 』 裏頭筆者也提到過去使用的其它 GNU/Linux Distribution 的惱人經驗,可是在 Debian 裏頭安裝軟件是一件很是愉悅的事情,只要 『 apt-get install 』一行指令簡簡單單輕輕鬆鬆便可完成,全部相依、相斥 Debian 都會幫咱們 take care ,您要作的就是 『 Say Yes 』。
apt-get remove
軟件移除:
與 install 同樣,Debian 同樣會幫您處理移除軟件時所發生的相依問題。
apt-get upgrade
軟件升級:
日常咱們很難顧慮到系統上所安裝的數十甚至數百套軟件的版本是否有新版出現,如今只要下這個指令 Debian 便會自動找出全部有新版的軟件套件並逐一升級。
範例:
底下是筆者執行完 『 apt-get upgrade 』 系統報告搜查狀況,並詢問是否贊成升級的畫面:
apt-get dist-upgrade
系統升級:
當轉移整個系統時,如 『 stable 』 轉換到 『 testing 』,或是系統運行好一段時間都應該下這個指令,它會聰明的處理到不少軟件相依、相斥的問題。
dist-upgrade
apt-get source
若是您想取得某個軟件套件 ( packages ) 的原始碼能夠透過這個指令達成。
apt-get clean
咱們透過 apt-get 安裝的任何軟件都會先下載到 『 /var/cache/apt/archives/ 』及 『 /var/cache/apt/archive/partial/ 』 目錄底下,通常預設 apt-get 在安裝完軟件後是不會把上述位置底下的『 .deb 』 殺除,一段時間後您若是以爲系統空間不足,您能夠下 『 apt-get clean 』讓系統自動清理這個目錄。
apt-get autoclean
相似 『 apt-get clean 』,下此參數時 apt-get 在安裝完畢後會自動刪除該軟件的 『 .deb 』 ?。
apt-get check
apt-get 不是萬能,有時候也是會出現問題,如附圖 broken,遇到有問題的時候您能夠下 『 apt-get check 』來診斷問題所在。
apt-get remove --purge `deborphan` ( 清除系統多餘的 library )
當您使用 debian 一段時間後,若是您常常安裝、移除軟件必定會出現殘餘 library 在系統的情況,緣由是當您安裝軟件時, debian 依照軟件相依特性安裝了額外的 library,可是當您移除該軟件時,當初連帶安裝的 library 不見得會一塊兒被移除,長此以往系統就會出現殘餘的 library,這個時候您即可如下這行指令,爲您掃除系統中無用的 library ,確保系統的清潔性。
其它經常使用輔助選項:
-f ( --fix-broken )
假如沒法安裝,請試着下"-f"參數。
-d ( --download-only )
只下載 『 .deb 』 而不安裝,下載的檔案會存放在 『 /var/cache/apt/archives/ 』底下。
例子:『 apt-get -d install aterm 』。
--purge
這個參數會幫助您移除跟您想要移除軟件的相關軟件。
例子:『 apt-get --purge remove aterm 』。