Linux

如何執行 Debian stable 但從測試中安裝一些軟體包?

  • January 27, 2022

假設您正在執行一台伺服器,並且您不想從 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

您也可以添加一個oldstableinsources.lists.dpreferences.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或類似的儲存庫中試試運氣。

引用自:https://serverfault.com/questions/22414