当旧包依赖项位于优先级更高的源中时,如何解决较新的包依赖项?

当旧包依赖项位于优先级更高的源中时,如何解决较新的包依赖项?

当尝试更新“unity”包(以及一些其他相关包,包括unity-2dlibunity-2d-private0)时,apt-get告诉我无法更新,因为所需的依赖项是libxi6 > 2:1.6.99.1,但实际安装的版本是2:1.6.0-0ubuntu2.1

我运行了apt-cache policy libxi6,可以看到版本2:1.7.1.901-1ubuntu1~precise1在“更新”源中可用,但我安装的版本来自“安全”源。遗憾的是,我的安全源的优先级 (990) 高于我的更新源 (900),因此 apt-get 似乎无法解决依赖性问题。

我无法在 Launchpad 上看到与此依赖项失败有关的任何问题,因为我预计 precise-updates 中的 unity 版本需要libxi6在 security 中可用的,或者 precise-security 中会有一个具有正确依赖项的 unity 包。

/etc/apt/preferences.d/* 的内容:

    Package: *
    Pin: release a=precise-security
    Pin-Priority: 990

    Package: *
    Pin: release a=precise-updates
    Pin-Priority: 900

    Package: *
    Pin: release a=precise-proposed
    Pin-Priority: 400

输出apt-cache policy

 100 /var/lib/dpkg/status
     release a=now
 500 https://private-ppa.launchpad.net/commercial-ppa-uploaders/steam/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-commercial-ppa-uploaders-steam,a=precise,n=precise,l=Steam,c=main
     origin private-ppa.launchpad.net
 500 https://private-ppa.launchpad.net/commercial-ppa-uploaders/steam/ubuntu/ precise/main amd64 Packages
     release v=12.04,o=LP-PPA-commercial-ppa-uploaders-steam,a=precise,n=precise,l=Steam,c=main
     origin private-ppa.launchpad.net
 500 http://dl.google.com/linux/talkplugin/deb/ stable/main i386 Packages
     release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
     origin dl.google.com
 500 http://dl.google.com/linux/talkplugin/deb/ stable/main amd64 Packages
     release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
     origin dl.google.com
 500 http://repository.spotify.com/ stable/non-free i386 Packages
     release c=non-free
     origin repository.spotify.com
 500 http://repository.spotify.com/ stable/non-free amd64 Packages
     release c=non-free
     origin repository.spotify.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/universe Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/universe Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/restricted Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/restricted Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/multiverse Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/multiverse Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/main Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/main Translation-en
 400 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/universe i386 Packages
     release v=12.04,o=Ubuntu,a=precise-proposed,n=precise,l=Ubuntu,c=universe
     origin gb.archive.ubuntu.com
 400 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/multiverse i386 Packages
     release v=12.04,o=Ubuntu,a=precise-proposed,n=precise,l=Ubuntu,c=multiverse
     origin gb.archive.ubuntu.com
 400 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/main i386 Packages
     release v=12.04,o=Ubuntu,a=precise-proposed,n=precise,l=Ubuntu,c=main
     origin gb.archive.ubuntu.com
 400 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/restricted i386 Packages
     release v=12.04,o=Ubuntu,a=precise-proposed,n=precise,l=Ubuntu,c=restricted
     origin gb.archive.ubuntu.com
 400 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/universe amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-proposed,n=precise,l=Ubuntu,c=universe
     origin gb.archive.ubuntu.com
 400 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/multiverse amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-proposed,n=precise,l=Ubuntu,c=multiverse
     origin gb.archive.ubuntu.com
 400 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/main amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-proposed,n=precise,l=Ubuntu,c=main
     origin gb.archive.ubuntu.com
 400 http://gb.archive.ubuntu.com/ubuntu/ precise-proposed/restricted amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-proposed,n=precise,l=Ubuntu,c=restricted
     origin gb.archive.ubuntu.com
 500 http://archive.canonical.com/ precise/partner i386 Packages
     release v=12.04,o=Canonical,a=precise,n=precise,l=Partner archive,c=partner
     origin archive.canonical.com
 500 http://archive.canonical.com/ precise/partner amd64 Packages
     release v=12.04,o=Canonical,a=precise,n=precise,l=Partner archive,c=partner
     origin archive.canonical.com
 500 http://extras.ubuntu.com/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-app-review-board,a=precise,n=precise,l=Application Review Board PPA,c=main
     origin extras.ubuntu.com
 500 http://extras.ubuntu.com/ubuntu/ precise/main amd64 Packages
     release v=12.04,o=LP-PPA-app-review-board,a=precise,n=precise,l=Application Review Board PPA,c=main
     origin extras.ubuntu.com
 500 http://security.ubuntu.com/ubuntu/ precise-security/universe Translation-en
 500 http://security.ubuntu.com/ubuntu/ precise-security/restricted Translation-en
 500 http://security.ubuntu.com/ubuntu/ precise-security/multiverse Translation-en
 500 http://security.ubuntu.com/ubuntu/ precise-security/main Translation-en
 990 http://security.ubuntu.com/ubuntu/ precise-security/multiverse i386 Packages
     release v=12.04,o=Ubuntu,a=precise-security,n=precise,l=Ubuntu,c=multiverse
     origin security.ubuntu.com
 990 http://security.ubuntu.com/ubuntu/ precise-security/universe i386 Packages
     release v=12.04,o=Ubuntu,a=precise-security,n=precise,l=Ubuntu,c=universe
     origin security.ubuntu.com
 990 http://security.ubuntu.com/ubuntu/ precise-security/restricted i386 Packages
     release v=12.04,o=Ubuntu,a=precise-security,n=precise,l=Ubuntu,c=restricted
     origin security.ubuntu.com
 990 http://security.ubuntu.com/ubuntu/ precise-security/main i386 Packages
     release v=12.04,o=Ubuntu,a=precise-security,n=precise,l=Ubuntu,c=main
     origin security.ubuntu.com
 990 http://security.ubuntu.com/ubuntu/ precise-security/multiverse amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-security,n=precise,l=Ubuntu,c=multiverse
     origin security.ubuntu.com
 990 http://security.ubuntu.com/ubuntu/ precise-security/universe amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-security,n=precise,l=Ubuntu,c=universe
     origin security.ubuntu.com
 990 http://security.ubuntu.com/ubuntu/ precise-security/restricted amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-security,n=precise,l=Ubuntu,c=restricted
     origin security.ubuntu.com
 990 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-security,n=precise,l=Ubuntu,c=main
     origin security.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/universe Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/restricted Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/multiverse Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/main Translation-en
 100 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/multiverse i386 Packages
     release v=12.04,o=Ubuntu,a=precise-backports,n=precise,l=Ubuntu,c=multiverse
     origin gb.archive.ubuntu.com
 100 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/universe i386 Packages
     release v=12.04,o=Ubuntu,a=precise-backports,n=precise,l=Ubuntu,c=universe
     origin gb.archive.ubuntu.com
 100 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/restricted i386 Packages
     release v=12.04,o=Ubuntu,a=precise-backports,n=precise,l=Ubuntu,c=restricted
     origin gb.archive.ubuntu.com
 100 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/main i386 Packages
     release v=12.04,o=Ubuntu,a=precise-backports,n=precise,l=Ubuntu,c=main
     origin gb.archive.ubuntu.com
 100 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/multiverse amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-backports,n=precise,l=Ubuntu,c=multiverse
     origin gb.archive.ubuntu.com
 100 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/universe amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-backports,n=precise,l=Ubuntu,c=universe
     origin gb.archive.ubuntu.com
 100 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/restricted amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-backports,n=precise,l=Ubuntu,c=restricted
     origin gb.archive.ubuntu.com
 100 http://gb.archive.ubuntu.com/ubuntu/ precise-backports/main amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-backports,n=precise,l=Ubuntu,c=main
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/universe Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/universe Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/restricted Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/restricted Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/multiverse Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/multiverse Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/main Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/main Translation-en
 900 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/multiverse i386 Packages
     release v=12.04,o=Ubuntu,a=precise-updates,n=precise,l=Ubuntu,c=multiverse
     origin gb.archive.ubuntu.com
 900 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/universe i386 Packages
     release v=12.04,o=Ubuntu,a=precise-updates,n=precise,l=Ubuntu,c=universe
     origin gb.archive.ubuntu.com
 900 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/restricted i386 Packages
     release v=12.04,o=Ubuntu,a=precise-updates,n=precise,l=Ubuntu,c=restricted
     origin gb.archive.ubuntu.com
 900 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/main i386 Packages
     release v=12.04,o=Ubuntu,a=precise-updates,n=precise,l=Ubuntu,c=main
     origin gb.archive.ubuntu.com
 900 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/multiverse amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-updates,n=precise,l=Ubuntu,c=multiverse
     origin gb.archive.ubuntu.com
 900 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/universe amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-updates,n=precise,l=Ubuntu,c=universe
     origin gb.archive.ubuntu.com
 900 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/restricted amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-updates,n=precise,l=Ubuntu,c=restricted
     origin gb.archive.ubuntu.com
 900 http://gb.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
     release v=12.04,o=Ubuntu,a=precise-updates,n=precise,l=Ubuntu,c=main
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/universe Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/universe Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/restricted Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/restricted Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/multiverse Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/multiverse Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/main Translation-en_GB
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/main Translation-en
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/multiverse i386 Packages
     release v=12.04,o=Ubuntu,a=precise,n=precise,l=Ubuntu,c=multiverse
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/universe i386 Packages
     release v=12.04,o=Ubuntu,a=precise,n=precise,l=Ubuntu,c=universe
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/restricted i386 Packages
     release v=12.04,o=Ubuntu,a=precise,n=precise,l=Ubuntu,c=restricted
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/main i386 Packages
     release v=12.04,o=Ubuntu,a=precise,n=precise,l=Ubuntu,c=main
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/multiverse amd64 Packages
     release v=12.04,o=Ubuntu,a=precise,n=precise,l=Ubuntu,c=multiverse
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages
     release v=12.04,o=Ubuntu,a=precise,n=precise,l=Ubuntu,c=universe
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/restricted amd64 Packages
     release v=12.04,o=Ubuntu,a=precise,n=precise,l=Ubuntu,c=restricted
     origin gb.archive.ubuntu.com
 500 http://gb.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
     release v=12.04,o=Ubuntu,a=precise,n=precise,l=Ubuntu,c=main
     origin gb.archive.ubuntu.com

答案1

Package: *
Pin: release a=precise-security
Pin-Priority: 990

这里有一个问题。安全包总是有更高的版本字符串。总是。您无需设置软件包固定来优先选择这些软件包。除非任何用户偏好限制此行为(这就是您正在做的事情),否则 APT 将始终安装可用的更高版本。

我不知道你想用这些软件包固定功能实现什么目的,但它们会给你带来麻烦。软件包固定功能是为不同的软件包源(即 Ubuntu 和某种 PPA)设计的,通常用于操纵非官方源的优先级。建议的存储库始终具有较低的优先级,安全存储库始终每天自动升级。

我建议您降低 PPA 优先级(如果这是您想要控制的),而不是修改 Ubuntu 存储库。

如果你不想改变任何东西,你可以强制 apt 绑定到你的意愿,使用如下命令:

sudo apt-get install libxi6=2:1.7.1.901-1ubuntu1~precise1

或者

sudo apt-get install libxi6/precise-updates

但请记住,更新存储库始终会包含安全存储库所做的所有更改。

相关内容