debian軟件源sources.list文件格式說明

在安裝完debian操作系統之後大家做的第一件事大概就是修改source.list文件了吧,否則你是無法在線更新軟件的,那麼source.list文件中的各個配置項的具體含義你搞懂了麼?下面就以我的source.list文件爲例爲大家講解一下。

deb http://mirrors.163.com/debian/ wheezy main non-free contrib
deb http://mirrors.163.com/debian/ wheezy-proposed-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ wheezy main non-free contrib
deb-src http://mirrors.163.com/debian/ wheezy-proposed-updates main non-free contrib

其中可以把每一行分爲四個部分,說白了,當你在線更新某個軟件時,debian就是遵照這四個選項(準確的說是後三項)的指示找到軟件來給你安裝的:

deb    ###   ftp地址                         ###  版本代號   ###  限定詞
deb    ###   http://mirrors.163.com/debian/ ###  wheezy    ###   main non-free contrib

其中,

1. 第一部分

第一部分爲deb或者deb-src,其中前者代表軟件的位置,後者代表軟件的源代碼的位置

2. 第二部分

第二部分爲你的ftp鏡像的url,以我的爲例,我是用的是大陸速度較快的網易鏡像。在瀏覽器中打開此鏈接以後會發現有如下內容:

其中:

/dists/ 目錄包含"發行版"(distributions), 此處是獲得 Debian 發佈版本(releases)和已發佈版本(pre-releases)的軟件包的正規途徑. 有些舊軟件包及 packages.gz 文件仍在裏面.

/pool/ 目錄爲軟件包的物理地址. 軟件包均放進一個巨大的 "池子(pool)", 按照源碼包名稱分類存放. 爲了方便管理, pool 目錄下按屬性再分類("main", "contrib" 和 "non-free"), 分類下面再按源碼包名稱的首字母歸檔. 這些目錄包含的文件有: 運行於各種系統架構的二進制軟件包, 生成這些二進制軟件包的源碼包.你可以執行命令 apt-cache showsrc mypackagename, 查看 'Directory:' 行獲知每個軟件包的存放位置. 例如: apache 軟件包存放在 pool/main/a/apache/ 目錄中.另外, 由於lib*軟件包數量巨大, 它們以特殊的方式歸檔: 例如, libpaper 軟件包存放在 pool/main/libp/libpaper/.

還有一些目錄:

/tools/:用於創建啓動盤, 磁盤分區, 壓縮/解壓文件, 啓動 Linux 的 DOS 下的小工.
/doc/:

基本的 Debian 文檔, 如 FAQ, 錯誤報告系統指導等..

/indices/:

維護人員文件和重載文件.

/project/:

大部分爲開發人員的資源, 如:

 
project/experimental/
 

本目錄包含了處於開發中的軟件包和工具, 它們均處於 alpha 測試階段. 用戶不應使用這些軟件, 因爲即使是經驗豐富的用戶也會被搞得一團糟.)

3. 第三部分

第三部分表示你的debian版本號(注意,不是某個軟件的版本號,而是debian本身的版本號),也有人稱這是對debian軟件包的一種水平劃分(這種說法還是比較形象的),具體這一項怎麼寫,可以參看http://mirrors.163.com/debian/dists/網頁裏面的內容(如下圖),大致來說按版本的舊-->新程度有這麼幾大類:oldstable,stable,testing,sid

 

1.oldstable顧名思義,就是以前的穩定發行版了,在本例中oldstable就是Debian6.0.8目錄的一個鏈接,兩者內容完全一致。

2.stable是指現在的穩定發行版,對於每個debian來說,每個穩定發行版都會有一個代號,如debian 6叫做squeeze,debian 7叫做wheezy,由於在筆者寫本文的時候穩定版是debian7,所以stable就是wheezy的一個鏈接。

3.testing指目前還暫時處於測試階段的debian發行版,如wheezy往下發展就是jessie了,所以testing代指的就是jessie目錄,它是jessie的一個鏈接。

4.unstable那就是不穩定版本了,但在這個目錄清單裏我們並沒有看到unstable目錄,其實它還有一個代號:sid,我們知道debian的發行版本名稱大都來自玩具總動員中的角色名稱,而sid就是那個專門破壞玩具的鄰居家壞小孩,所以就把unstable這個不穩定的軟件目錄起名爲sid了,這裏面的軟件一般都是最新的,穩定性、安全穩定值得商榷,如果你想做試驗小白鼠,大可使用這裏的軟件。經過一段時間的測試,這裏面的軟件可能會進入下一個階段testing目錄從而出現在下一個debian發行版中,要麼就夭折被直接拋棄了。

4. 第四部分

好了,從水平的角度介紹完debian發行版,現在我們進入這些目錄大致看一下里面的內容(以stable目錄爲例):

 

我們會發現每個目錄都會包括contrib、main、non-free等幾個目錄,那麼這些目錄又是什麼東東呢?

以垂直的觀點來看 Debian 軟件的分佈:main、contrib、non-free、non-us
因爲 Debian 是非營利組織,但是組織架構嚴謹,有一套完善的軟件管理方式。基於其對軟件 free 度的一種堅持,對不同版權軟件包的錄入有一些限定。
下面是對它們的一些簡要介紹:
main     Debian 裏最基本及主要且符合自由軟件規範的軟件 ( packages )。
contrib     這裏頭軟件雖然可以在 Debian 裏頭運作,即使本身屬於自由軟件但多半卻是相依於非自由 ( non-free ) 軟件。
non-free   不屬於自由軟件範疇的軟件。
non-us     這個分類裏頭的軟件都來自非美國地區,當中可能有牽扯到專利、加密..等等問題。
marillat     對應 Christian Marillat 的軟件倉庫,包括mplayer, transcode等。
rareware   對應 rarewares.org 的軟件倉庫, 包括很多音效程序,如lame, musepack, beep media player等。
ustc      對應 debian@ustc 維護的一些軟件包,如 mule-gbk, gaim-openq, scim, stardict dicts, patched xpdf, irssi, xmms。
java   
    對應 Blackdown java。包括 j2re, j2sdk ,mozilla java plugin。
firefly      對應打過firefly補丁的包,包括 fontconfig mozilla mozilla-firefox pango1.0 qt-x11-free xft
misc      對應其它無分類的包,包括 nvidia-kernel, winex3, rox, chmsee等

5. 關於源的混用問題

一般不建議混用 stable, testing 和 unstable 的源。因爲很多軟件之間都有不同程度的相依性,強行的結果會造成更多軟件相依、相斥問題的產生,最終可能影響系統穩定與整個軟件升級制度的正常運作。
需要把源從低級升到高級是非常簡單的,只要修改 sources.list 裏的源就好了。但反過來,降級是一種幾乎不可能的任務…如果你使用的是高版本的debian,而在source.list文件中配置的是低版本,那麼當你在線安裝軟件的時候很可能會發現有很多軟件依賴問題無法解決,當出現這些問題的時候,就要想到是否要修改下source.list文件中的版本問題了

6. 按需修改自己的sources.list 

Debian 有自己獨特的版本系統,整個系統有三個版本,分別爲穩定版(stable),測試版(testing)和不穩定版(unstable/sid)。每次發佈的版本都是穩定版,而測試版在經過一段時間的測試證明沒有問題後會成爲新的穩定。因爲穩定版是會更新的,爲了便於區分不同時期的穩定版,每個版本又有自己特有的代號(codename),現在的穩定版稱爲 wheezy(debian7),測試版稱爲jessie。而不穩定版的代號永遠是 sid。
sources.list的寫法
1)找到包含distspool這兩個目錄的那個目錄,把地址記下來,比如http://mirrors.163.com/debian/;

2)打開dists,裏面包含的目錄名字,記下來。比如http://mirrors.163.com/debian/,dists/包含wheezy、testing等。把這些目錄名字記下來。

3)打開pool目錄,看看裏面包含哪些組件目錄,比如main、contrib、non-free;

4)書寫格式:deb <1記下來的地址> <2記下來的目錄名> <3記下來的名字>, 如:
deb http://mirrors.163.com/debian wheezy man contrib non-free

7. 更新軟件包列表信息,升級debian

修改 /etc/apt/sources.list 之後一般會運行下面兩個命令進行更新升級:
sudo apt-get update
sudo apt-get dist-upgrade
其中 :
   update - 取回更新的軟件包列表信息
   dist-upgrade - 發佈版升級
第一個命令僅僅更新的軟件包列表信息,所以很快就能完成。
第二個命令是全面更新發布版,一般會下載幾百兆的新軟件包。
其實在運行完第一個命令後系統就會提示你進行更新升級。因爲修改了源,所有這次更新的改動可能會很大,比如安裝某個包可能會刪除太多的其他包,所有系統會提示你運行“sudo apt-get dist-upgrade”進行全面升級或使用軟件包管理器中的“標記全部軟件包以便升級”功能進行升級。兩者效果是一樣的。

原文出處:http://www.cnblogs.com/beanmoon/p/3387652.html 

發佈了27 篇原創文章 · 獲贊 8 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章