apt-get install -t testing appX 与 apt-get install appX/testing

apt-get install -t testing appX 与 apt-get install appX/testing

我一直在尝试了解这两个命令之间的区别,并注意到我得到了不同的结果。

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 即可。

相关内容