Debian

在 Debian 系統上管理非官方儲存庫

  • March 2, 2015

幾年前,我將此儲存庫添加到了我的 sources.list:

http://www.deb-multimedia.org/

因為它包含像 acroread 或 flash player 這樣的軟體包,這些軟體包在官方 repos 中要麼失去要麼過期。

但是,現在我剛剛意識到該儲存庫中的某些軟體包已損壞,例如 mencoder。因此有幾個問題:

  1. 如何找出從這個特定儲存庫安裝的軟體包?
  2. 如何使此儲存庫的優先級降低,以便僅從那裡自動安裝/升級我想要的軟體包?

編輯:我按照某人的建議編輯了“/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

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