快速版
我已经建立了一个私人 deb 存储库并将一些已签名的 deb 包复制到其中。我已经在本地安装了签名密钥。但是,当我尝试从 repo 安装时,我收到此警告:
WARNING: The following packages cannot be authenticated!
手动安装时,我可以按y但我想使用 puppet 自动安装这些包,但失败了。
所以有什么问题?我是否需要使用我控制的密钥退出包裹?有没有更好的方法来确保我安装了特定版本的人偶?
更多细节
我从puppet debian 存储库中获得了包- http://apt.puppetlabs.com/我只是从这个目录(为了清晰)复制包
然后使用为每个 repo 运行这些命令的脚本更新存储库:
cd /var/www/html/apt/ubuntu/lucid
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
dpkg-scansources sources /dev/null | gzip -9c > sources/Sources.gz
我已经在客户端上安装了签名密钥。
$ sudo apt-key list
/etc/apt/trusted.gpg
--------------------
...
pub 4096R/4BD6EC30 2010-07-10 [expires: 2016-07-08]
uid Puppet Labs Release Key (Puppet Labs Release Key) <[email protected]>
...
这样做的理由是我希望所有 puppet 客户端都是相同的版本。所以所有机器都应该使用以下 pin 从我的存储库中获取包/etc/apt/preferences.d/puppet
:
Package: puppet puppet-common facter
Pin: origin deb.example.org
Pin-Priority: 1001
(我们目前使用的是 puppet 2.6.x,所以我需要 1001 的优先级来将精确客户端从 2.7.x 降级)。
我已经阅读了有关保留包的信息,但这并不能帮助我更改包版本。
欢迎所有建议。
您确定包裹已签名吗?我不确定,但我想应该有适当的签名文件。我们正在签署我们的整个存储库,因此整棵树只有一个签名,我们让 reprepro 为我们做这件事。