2011年1月22日 星期六

[Linux] package resources

由修改 『 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
值得一提的是

  1. 透過這樣的機制是非常有彈性的,來源位置幾乎可以是網路上的任何一個角落,不見得是要 Debian Office 站台,個人製作的 .deb 軟體套件也可以開放給網路上的人使用。例如目前的 Debian 官方『 stable 』版本裡頭的 Linux kernel 不是最新版的,而 bunk 網友自己幫忙做了最新版本的 kernel for debian package,並提供了 『 debhttp://people.debian.org/ bunk/debian potato main 』 這個私人的位置,則我們可以把這個位置加入 『 /etc/apt/sources.list 』 設定檔裡頭,再透過 『 apt-get update 』 就可以取得 bunk 所製作的 for debian 的 kernel package ( 目前在 testing 裡頭已經有最新的 kernel 了,所以不需要在透過其他的來源來安裝 )。更詳細的 kernel 升級方法請參考 Debian 升級 kernel 真輕鬆 一節。
  2. 因為 Debian 官方對於軟體篩選有一定的規定,如果某個軟體進不了 Debian 的 package tree ,但我們又不想由 Source tallball 安裝, 我們便可以透過這樣的管道讓我們仍舊可以使用 Debian 良好的軟體管理機制而且可以安心使用額外軟體。



From http://opensource.nchc.org.tw/intro_to_linux/part3/Debian-Tutorial-v0.1/Debian-Install-Guide-5.html

沒有留言:

張貼留言