apt-get install -ttestingappX VS apt-get安装appX /testing

我一直在试图理解这两个命令之间的差异,并注意到我得到了不同的结果。

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

背景

我按照https://serverfault.com/a/382101/132528设置我的源列表和固定configuration

目前的结果

 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 

在做的时候select4.2-2

 apt-get install -t testing appX 

在做4.8时select

 apt-get install appX/testing 

Debian手册:

-t targetRelease

为了让apt-get在search已升级的软件包时使用特定的分发版本,您需要使用-t或–target-release选项,然后input您想要的分发名称(例如:apt-get -t stable升级)。

包装/配送

如果文件sources.list提到了几个发行版,可以给出安装的版本。 apt-get install package / version可以请求一个特定的版本号,但是通常优先selectapt-get install package / distribution来指明它的来源分布(Stable,Testing或Unstable)。

在这两种情况下,你指定你想要的分配,但是手头的行为在这两种情况下是不一致的?

我有同样的问题,但我想通了!

(我本来想对这个原始答案发表评论,因为其他人似乎也有这个问题,但是当时我没有足够的魔法“名声”点,因为我认为这是有价值的,所以在这里)。

这是他select的固定价值的一个怪癖。 当你运行apt-get install my_package ,apt会根据哪一个具有最高的固定优先级来select安装该软件包的源。

整个系统设置(默认释放)的优先级为990。

对apt-get命令添加-t unstable使得该命令的默认释放“不稳定”。

他把“稳定”的固定优先级设置为995 。 这意味着无论如何,软件包总是会从稳定状态安装,因为它的优先级甚至高于默认的释放优先级。

所以解决? 简单 – 只需将/etc/apt/preferences.d/security.pref的引脚优先级从995更改为900即可。