Linux

使用 apt 下載不同發行版的軟體包

  • July 23, 2019

我想下載一個.deb包含不同發行版依賴項的包。

我的公司有很多 Linux 系統:Ubuntu 11.04、11.10、12.10 和 Debian 5 和 6。

下載完整依賴樹的命令是apt-get -d install package.

我目前正在使用 Debian 6 (squeeze),並且下載相同發行版的軟體包可以正常工作。我嘗試通過將我的更改為 Debian 5 (lenny) 源來下載(安裝)包樹。sources.list

但是我收到以下錯誤:

# apt-get -d install python-lxml
...
The following packages have unmet dependencies:
python-lxml : Depends: python (< 2.6) but 2.6.6-3+squeeze7 is to be installed
E: Broken packages

為每個發行版執行不同的作業系統將產生 12 台以上的機器。我正在尋找更清晰的解決方案。

有什麼建議麼?

APT 的核心工作是解決依賴關係。所以你不能因為抱怨依賴而責備它。

您需要使用不同的配置來呼叫它,這樣它就不會混合包數據庫。為每個發行版保留單獨apt.conf的文件和sources.list文件,例如。

apt-get -o Dir::Etc::Main=/path/to/precise/apt.conf -d …

apt.conf至少包含

Dig::State::status "/path/to/precise/status";
APT::Get::Download-Only "true";

您可能需要符號連結或複制目錄中/etc/apt的某些文件/path/to/precise(取決於您在其中的內容)。

傳遞備用數據庫時不要以 root 身份執行 apt-get。如果apt-get有權修改您的系統並且您不小心配置錯誤或關閉-d,您可能會嚴重破壞您的系統。只使用它需要的權限執行apt-get,只要你只下載不包括 root 的東西。您需要有足夠的權限才能寫入記憶體目錄/var/cache/apt及其內容;我建議為此創建一個組(addgroup aptcache; chgrp -R aptcache /var/cache/apt; chmod -R g+w /var/cache/apt並將自己添加到其中)。

引用自:https://unix.stackexchange.com/questions/61415