防止 apt-get Upgrade 使用某些存储库

防止 apt-get Upgrade 使用某些存储库

我已将 ubuntu 基础存储库http://archive.ubuntu.com/ubuntu vivid main和几个 PPA 添加到我的 debian 安装中,以访问 debian 存储库中未提供的一些软件。我已将 apt 首选项设置为以下内容:

Package: *
Pin: release o=Debian,a=jessie
Pin-Priority: 1001

Package: *
Pin: release o=Debian,a=wheezy
Pin-Priority: 990

Package: *
Pin: release o=Ubuntu,a=vivid
Pin-Priority: 500

Package: *
Pin: release o=Ubuntu,a=utopic
Pin-Priority: 400

然而,每当我这样做apt-get upgradeapt-get dist-upgrade我得到一大堆 ubuntu 包在那里。有什么办法可以防止这种情况发生吗?我只想要非常精选的软件包的 ubuntu 存储库。我知道我可以暂时添加存储库,然后删除它们并重新添加它们,但这似乎很麻烦。我的优先级是否太高?或者是别的什么?

的结果apt-cache policy ffmpeg

Installed: (none)
Candidate: 6:0.8.17-1
Version table:
 7:2.4.3-1ubuntu1~utopic1 0
    400 http://ppa.launchpad.net/kirillshkrogalev/ffmpeg-next/ubuntu/ utopic/main amd64 Packages
 6:0.8.17-1 0
    990 http://ftp.us.debian.org/debian/ wheezy/main amd64 Packages

答案1

尝试在不带参数的情况下运行apt-cache policy,看看您设置的固定首选项是否具有您预期的效果。

如果这没有帮助,请尝试apt-cache policy使用意外从 ubuntu 中提取的包名称运行。这应该向您显示该软件包的可用版本、分配的分数,并且它将标记(通过标记***)哪个软件包 apt 认为是“最佳”选项。

如果这对您没有帮助,请发布上述两个命令的输出。

答案2

至少有一个问题出在您对 Debian 存储库的引用中。将 apt 首选项中的前两条规则更改为:

Package: *
Pin: release o=Debian,n=jessie
Pin-Priority: 1001

Package: *
Pin: release o=Debian,n=wheezy
Pin-Priority: 990

这将导致 apt-update 将系统上安装的所有内容替换为 jessie 中的版本(如果可用)(即使是降级)。与其他可用存储库相比,jessie 中不可用的软件包将更喜欢 wheezy(或指定的目标)(假设从当前安装的升级)。我不确定 Ubuntu 存储库中的档案是否以代号命名,或者您是否还必须将这些条目的“a=”更改为“n=”。

请参阅apt 首选项手册页

相关内容