我一直在尝试了解这两个命令之间的区别,并注意到我得到了不同的结果。
apt-get install -t testing appX
apt-get install appX/testing
背景
我按照以下设置了我的源列表和固定配置https://serverfault.com/a/382101/132528
目前的结果
root@home:/etc/apt# apt-cache policy i3
i3:
Installed: (none)
Candidate: 4.2-2
Version table:
4.8-1 0
750 http://debian.mirror.ac.za/debian/ testing/main amd64 Packages
750 http://ftp.us.debian.org/debian/ testing/main amd64 Packages
50 http://debian.mirror.ac.za/debian/ unstable/main amd64 Packages
50 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
4.8-1~bpo70+1 0
100 http://debian.mirror.ac.za/debian/ wheezy-backports/main amd64 Packages
4.2-2 0
995 http://debian.mirror.ac.za/debian/ wheezy/main amd64 Packages
995 http://debian.mirror.ac.za/debian/ stable/main amd64 Packages
995 http://ftp.us.debian.org/debian/ stable/main amd64 Packages
它选择 4.2-2,当做
apt-get install -t testing appX
并选择 4.8 时
apt-get install appX/testing
Debian 手册:
-t 目标版本
要告诉 apt-get 在搜索升级包时使用特定的发行版,您需要使用 -t 或 --target-release 选项,后跟您想要的发行版的名称(例如:apt-get -t stable upgrade)。
软件包/分发
如果文件 sources.list 提到了多个发行版,则可以给出要安装的软件包的版本。可以使用 apt-get install package=version 请求特定版本号,但通常最好使用 apt-get install package/distribution 来指示其来源发行版(稳定、测试或不稳定)。
问题
在两种情况下,您都指定了想要的分布,但是两种情况下的行为并不一致?
答案1
我遇到了同样的问题,但我解决了!!!
(我原本想评论这个原始答案因为其他人似乎也遇到了这个问题,但当时我没有足够的魔法“声誉”点数来让我的意见有价值,所以就这样了。)
这是他为 apt-pinning 选择的值的一个怪癖。当您运行 时apt-get install my_package
,apt 会根据哪个源具有最高的固定优先级来选择从哪个源安装该软件包。
您的整体系统设置(默认版本)的优先级为 990。
暂时添加-t unstable
到 apt-get 命令会使“不稳定”成为该命令的默认版本。
他将固定优先级设置为“稳定”995。这意味着无论如何,软件包总是会从稳定版本安装,因为它的优先级甚至高于默认版本优先级。
那么如何解决呢?很简单 - 只需将密码优先级/etc/apt/preferences.d/security.pref
从 995 改为 900 即可。