为什么APT偏好不能按预期工作

New*_*one 2 apt preferences

我想在Ubuntu上安装高于2.7.11的版本的puppet,但源源版本是2.7.11,所以我添加了puppetlabs的源代码:

echo "deb http://apt.puppetlabs.com precise devel" > /etc/apt/sources.list.d/puppetlabs.list
Run Code Online (Sandbox Code Playgroud)

然后我使用apt-get然后找到最新版本已经是3.0.0.但我只想使用2.7.19.所以我编辑/ etc/apt/preferences:

package:puppet
Pin: release  v=2.7.19*, o= "http://apt.puppetlabs.com/"
Pin-Priority: 1001
Run Code Online (Sandbox Code Playgroud)

然后我使用apt-cache policy puppet,但似乎这不能像我期望的那样工作:

puppet:
Installed: 3.0.0-0.1rc6puppetlabs1
Candidate: 3.0.0-0.1rc6puppetlabs1
Package pin: (not found)
Version table:
*** 3.0.0-0.1rc6puppetlabs1 1001
    500 http://apt.puppetlabs.com/ precise/devel amd64 Packages
    100 /var/lib/dpkg/status
 2.7.19-0.1rc3puppetlabs1 1001
    500 http://apt.puppetlabs.com/ precise/devel amd64 Packages
Run Code Online (Sandbox Code Playgroud)

我已经阅读了man 5 apt_preferences,但仍然无法使其正常工作.

小智 5

这里阅读文件

"o="意味着Release文件中的Origin.
如果你想使用http (作为sources.list中的源代码)......你应该写:

Pin: origin "http..." 
Run Code Online (Sandbox Code Playgroud)

检查man apt_preferences以获得更多帮助!