快速版本
我已经建立了一个私有的deb软件包仓库,并将一些签名的deb软件包复制到其中。我已经在本地安装了签名密钥。然而,当我尝试从仓库安装时,出现了以下警告:
WARNING: The following packages cannot be authenticated!
当我手动安装时,我只需按下 y 键,但我想使用 Puppet 自动安装这些软件包,但失败了。
那么问题出在哪里呢?我需要用我自己控制的密钥重新签名软件包吗?有没有更好的方法来确保我安装了特定版本的 Puppet?
更多细节
我从 puppet debian repository - http://apt.puppetlabs.com/ 获取了这些软件包,我只需从(对于 lucid)this directory 复制软件包。
然后使用一个脚本更新存储库,该脚本为每个存储库运行以下命令:
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) <info@puppetlabs.com>
...
这样做的理由是我希望所有的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降级。)
(我已经阅读了关于保留软件包的内容,但这并不能帮助我更改软件包版本。)
(欢迎提出所有建议。)