如何在Debian中啟用測試版/不穩定版的軟體庫
(題圖來源)
在這篇文章里我將教大家如何在不弄壞你系統的前提下設置好測試、不穩定版的Debain系統並在上面安裝軟體。
Stable < Testing < Unstable (穩定 < 測試版 < 不穩定版) Wheezy < Jessie < Sid
1. 設置測試版/不穩定版的apt源
第一步是把測試版/不穩定版的源加到你的sources.list文件里。在Debian Wheezy系統上,/etc/apt/sources.list理應長得像這樣:
$ cat /etc/apt/sources.list
...
deb http://security.debian.org/ wheezy/updates main
deb http://http.us.debian.org/debian/ wheezy main
deb-src http://security.debian.org/ wheezy/updates main
...
把你repo伺服器的鏈接記下來,比如:http://http.us.debian.org/debian/
這個repo伺服器將會是離你最近的一個伺服器; 在不同的地理位置會有不同的url,這個將會用於下一步。
如果想加測試/不穩定源,則需要在sources.list文件加上這些東西:
# Testing repository - main, contrib and non-free branches
deb http://http.us.debian.org/debian testing main non-free contrib
deb-src http://http.us.debian.org/debian testing main non-free contrib
# Testing security updates repository
deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
# Unstable repo main, contrib and non-free branches, no security updates here
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 <respository server/mirror> <repository name> <sub branches of the repo>
(deb <上一步弄的伺服器或鏡像url> <repo的名字> <repo底下的分支>)
當然啦,除了用testing或者unstable這麼爛的詞,也能使用他們的發行版代號,比如Jessie或者Sid
deb http://http.us.debian.org/debian jessie main non-free contrib
deb http://security.debian.org/ jessie/updates main contrib non-free
deb http://http.us.debian.org/debian sid main non-free contrib
2. 釘住 apt!這非常重要
在加了測試/不穩定的repo之後,當你更新系統的時候所有安裝過並且可用的軟體就會立馬更新,而後你的系統就被你玩火自焚了。
所以需要設置一些規則,以便選定的軟體包在正常的更新時不會被更新到一個不穩定的測試版本。
我們需要使用「釘住APT」的方式來告訴apt系統,除了我們希望使用測試版或不穩定版的特定軟體包之外,其它的總是使用穩定版的軟體包來更新。
可以通過如下兩個文件之一來設置如何設置APT的優先順序來「釘住」。
/etc/apt/preferences
或
/etc/apt/preferences.d/my_preferences
打開這兩個文件之一(如果沒有的話就創建一個),然後輸入如下內容:
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600
前面我們提到過,穩定版指的是你當前的debian版本,測試版是下一個,而不穩定版則是更遠的將來發行版。上面的設置中最主要的是優先順序(Pin-Priority)。當前的穩定版應該有最高的優先順序,這就是說,正常的apt-get操作只會從當前的穩定版的軟體庫(現在是wheezy)裡面安裝軟體。
更新包緩存
在增加了新的軟體庫和指定了優先規則後,需要更新一下包緩存。
$ sudo apt-get update
確認APT規則
我們必須確認「釘住」的設置正確,優先順序也沒問題。使用 apt-cache 的 policy 參數來檢查:
$ apt-cache policy apache2
apache2:
Installed: (none)
Candidate: 2.2.22-13
Version table:
2.4.7-1 0
600 http://http.us.debian.org/debian/ unstable/main amd64 Packages
2.4.6-3 0
650 http://http.us.debian.org/debian/ testing/main amd64 Packages
2.2.22-13 0
700 http://http.us.debian.org/debian/ wheezy/main amd64 Packages
如上的輸出,確認在wheezy 穩定版中, 2.2.22 版本的Apache是選定的版本,它有最高的優先順序。
3. 從測試版/不穩定版軟體庫中安裝軟體
現在可以從測試版或不穩定版中選擇一個特定的軟體來安裝它了。假如說我們要從測試版軟體源中安裝 apache2。
有兩個不同的方法,並且其結果也有所不同。
方式一
# apt-get install apache2/testing
上述命令會從測試版軟體庫中安裝 apache2,並從穩定版軟體庫中安裝其依賴包(穩定版通過apt規則確定)。這個命令在某些情況下會失敗,比如安裝的軟體包(apache2)所需的依賴包在穩定版軟體庫中沒有更新到可以支持該軟體時。
方式二
# apt-get -t testing install apache2
上述命令會從測試版軟體庫中安裝apache2,並從測試版軟體庫中安裝其依賴包。這要比上面的命令工作的更好。
所以,要安裝較新的軟體包,直接從測試版/不穩定版的軟體庫中安裝就行了。注意,優先順序號碼不只是一個數字而已,還有其特定意義。可以查看 apt_preferences的man頁面了解更多:
$ man 5 apt_preferences
總結
使用「釘住」方式的測試版/不穩定版的軟體庫是一個獲取較新版本軟體包的一個好辦法,不過其實並不推薦使用它們。如果弄錯了,可能會從也許不兼容的分支上下載軟體包,這會把你的系統搞亂。
一個更好的方式是,使用向後移植的軟體庫來安裝更新的包。它從測試版和不穩定版的軟體庫中獲取較新版本的軟體包,但是為當前的穩定版軟體庫而編譯。所以,對於 debian wheezy來說,你可以使用wheezy-backports 軟體庫。訪問http://backports.debian.org/ 了解更多。
資源
- https://wiki.debian.org/AptPreferences
- https://wiki.debian.org/DebianTesting
- https://www.debian.org/security/
via: http://www.binarytides.com/enable-testing-repo-debian/
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive