天天看點

debian軟體源source.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,以我的為例,我是用的是大陸速度較快的網易鏡像。在浏覽器中打開此連結以後會發現有如下内容:

debian軟體源source.list檔案格式說明

其中:

/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

debian軟體源source.list檔案格式說明

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目錄為例):

debian軟體源source.list檔案格式說明

我們會發現每個目錄都會包括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)找到包含dists和pool這兩個目錄的那個目錄,把位址記下來,比如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 

參考連結:

http://wenku.baidu.com/view/58c179593b3567ec102d8a94.html

http://www.debian.org/doc/manuals/debian-faq/ch-ftparchives.zh-cn.html

作者:beanmoon

出處:http://www.cnblogs.com/beanmoon/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。

該文章也同時釋出在我的獨立部落格中-豆月部落格。