我一直在试图理解这两个命令之间的差异,并注意到我得到了不同的结果。
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即可。