我已将 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 upgrade
或apt-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 首选项手册页。