Debian
在 Debian 系統上管理非官方儲存庫
幾年前,我將此儲存庫添加到了我的 sources.list:
http://www.deb-multimedia.org/
因為它包含像 acroread 或 flash player 這樣的軟體包,這些軟體包在官方 repos 中要麼失去要麼過期。
但是,現在我剛剛意識到該儲存庫中的某些軟體包已損壞,例如 mencoder。因此有幾個問題:
- 如何找出從這個特定儲存庫安裝的軟體包?
- 如何使此儲存庫的優先級降低,以便僅從那裡自動安裝/升級我想要的軟體包?
編輯:我按照某人的建議編輯了“/etc/apt/preferences”文件:
grzes:/home/ga# cat /etc/apt/preferences Package: * Pin: release a=testing Pin-Priority: 700 Package: * Pin: release a=stable Pin-Priority: 600 Package: * Pin: release a=unstable Pin-Priority: 50 Package: * Pin: origin deb-multimedia.org/ Pin-Priority: 50
但它似乎沒有用(注意我手動降級了這個包):
grzes:/home/ga# apt-cache policy mencoder mencoder: Installed: 2:1.0~rc4.dfsg1+svn34540-1+b2 Candidate: 3:1.1-dmo5 Version table: 3:1.1-dmo5 0 50 http://www.deb-multimedia.org/ unstable/main i386 Packages 700 http://www.deb-multimedia.org/ testing/main i386 Packages *** 2:1.0~rc4.dfsg1+svn34540-1+b2 0 50 http://ftp.uk.debian.org/debian/ unstable/main i386 Packages 700 http://ftp.uk.debian.org/debian/ testing/main i386 Packages 100 /var/lib/dpkg/status 2:1.0~rc3++final.dfsg1-1 0 600 http://ftp.uk.debian.org/debian/ stable/main i386 Packages
我不知道如何列出所有包及其儲存庫,但對於單個包,您只需執行
apt-cache policy <package>
. 帶 *** 的行是目前安裝的版本以及相應的儲存庫。設置特定源的優先級稱為apt pinning,可以通過*/etc/apt/preferences完成(較新的Ubuntu版本要求配置位於/etc/apt/preferences.d/*中!):
您可以按版本、來源或版本固定。在您的情況下,您希望按原點固定:
Package: * Pin: origin www.deb-multimedia.org Pin-Priority: 300
或每個版本和*o=*選項:
Package: * Pin: release o=Unofficial Multimedia Packages Pin-Priority: 300
注意:似乎使用了第一個匹配的引腳配置,而忽略了其他匹配的配置。
要查看所有目前已知的包源、它們的優先級、來源和其他屬性,只需呼叫
apt-cache policy
而無需任何選項。
您可以使用腳本
apt-show-versions
。apt-show-versions -b | grep deb-multimedia
會給你一個來自的包列表
deb-multimedia.org
。