Linux
使用 apt 下載不同發行版的軟體包
我想下載一個
.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
並將自己添加到其中)。