如何執行 Debian stable 但從測試中安裝一些軟體包?
假設您正在執行一台伺服器,並且您不想從 Stable (Lenny) 升級到 Testing (Squeeze) 以僅安裝一個或兩個所需的軟體包。
僅從測試中安裝某些軟體包的最佳方法是什麼?
許多人似乎害怕將穩定與測試混為一談,但坦率地說,測試本身就相當穩定,並且通過適當的偏好和解決方案檢查,您可以避免將核心包置於不穩定路徑的“穩定性漂移”。
“測試還算穩定??” , 你問。是的。為了讓一個包從不穩定遷移到測試,它必須連續 10 天零開放錯誤。很有可能,特別是對於更流行的軟體包,如果出現問題,有人會送出不穩定版本的錯誤報告。
即使您不想混合環境,如果您遇到需要比穩定版本更新的版本的東西,也可以在那裡選擇。
這是我建議的設置:
首先,在 中創建以下文件
/etc/apt/preferences.d
:
stable.pref
:# 500 <= P < 990: causes a version to be installed unless there is a # version available belonging to the target release or the installed # version is more recent Package: * Pin: release a=stable Pin-Priority: 900
testing.pref
:# 100 <= P < 500: causes a version to be installed unless there is a # version available belonging to some other distribution or the installed # version is more recent Package: * Pin: release a=testing Pin-Priority: 400
unstable.pref
:# 0 < P < 100: causes a version to be installed only if there is no # installed version of the package Package: * Pin: release a=unstable Pin-Priority: 50
experimental.pref
:# 0 < P < 100: causes a version to be installed only if there is no # installed version of the package Package: * Pin: release a=experimental Pin-Priority: 1
(不要害怕這裡的不穩定/實驗性的東西。優先級足夠低,以至於它永遠不會自動安裝任何這些東西。即使是測試分支也會執行,因為它只會安裝你想要的包在測試中。)
現在,創建一個匹配集
/etc/apt/sources.list.d
:
stable.list
: 從您的原件複製/etc/apt/sources.list
。將舊文件重命名為sources.list.orig
.
testing.list
: 與 相同stable.list
,除了testing
。
unstable.list
: 與 相同stable.list
,但帶有unstable
, 並刪除安全列表。
experimental.list
: 與 相同unstable.list
,除了experimental
。您也可以添加一個
oldstable
insources.lists.d
和preferences.d
(使用優先級 1),儘管這個名字往往會在下一個穩定週期之前過期並消失。在這種情況下,您可以使用http://archive.debian.org/debian/
和“硬編碼”Debian 版本(etch、lenny 等)。要安裝包的測試版本,只需使用
aptitude install lib-foobar-package/testing
,或者直接跳到 aptitude 的 GUI 並選擇包詳細資訊中的版本(在您正在查看的包上按 Enter 鍵)。如果您收到有關包衝突的投訴,請先查看解決方案。在大多數情況下,第一個是“不要安裝這個版本”。學習使用每個包的接受/拒絕解析器選項。例如,如果您正在安裝 foobar-package/testing,而第一個解決方案是“不安裝 foobar-package/testing”,則將該選項標記為已拒絕,其他解決方案將永遠不會再轉向該路徑。在這種情況下,您可能需要安裝一些其他測試包。
如果它變得太麻煩(比如它正在嘗試升級 libc 或核心或其他一些巨大的核心系統),那麼您可以拒絕這些升級路徑或完全退出初始升級。請記住,如果您允許,它只會將東西升級到測試/不穩定。
編輯:修復了一些優先級引腳,並更新了列表。
在
/etc/apt/apt.conf.d
添加以下文件
99defaultrelease
:APT::Default-Release "stable";
in
/etc/apt/sources.list.d
- 添加用於測試/不穩定源的 url
stable.list
:deb http://ftp.de.debian.org/debian/ stable main contrib non-free deb-src http://ftp.de.debian.org/debian/ stable main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free
testing.list
:deb http://ftp.de.debian.org/debian/ testing main contrib non-free deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free deb http://security.debian.org/ testing/updates main contrib non-free
跑步
apt-get update
然後安裝你需要的東西
apt-get -t testing install something
如果您安裝具有大量依賴項的東西,請非常小心。最好不要在生產中這樣做。
您也可以在backports或類似的儲存庫中試試運氣。