快速版本
我已经设置了一个私有 deb 存储库并将一些已签名的 deb 包复制到其中。我已经在本地安装了签名密钥。但是当我尝试从存储库安装时,我收到此警告:
WARNING: The following packages cannot be authenticated!
手动安装时,我可以直接按,y但我想使用 puppet 自动安装这些包,但失败了。
那么问题是什么?我需要用我控制的密钥重新签发软件包吗?有没有更好的方法可以确保我安装了特定版本的 Puppet?
更多细节
我已经收到来自puppet debian 仓库-http://apt.puppetlabs.com/我只是从(对于 lucid)复制了这个包此目录
然后使用针对每个存储库运行以下命令的脚本来更新存储库:
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 降级)。
我读过持有包裹但这并不能帮助我更改软件包版本。
欢迎一切建议。
答案1
您确定软件包已签名吗?我不确定,但我猜应该有适当的签名文件。我们正在对整个存储库进行签名,因此整个树只有一个签名,我们让 reprepro 为我们完成此操作。