未签名存储库以在Ubuntu上安装软件包

时间:2018-07-20 22:26:25

标签: salt-stack

我正在使用Salt(SaltStack)在Ubuntu 18.04中安装软件包。例如,我想安装一个formula for docker。当我应用docker状态时,由于无法对公式中使用的软件包存储库进行签名,导致出现无法安装软件包的错误。

ID: docker package
Function: pkg.installed
Name: docker-engine
Result: False
Comment: An error was encountered while installing package(s): E: Failed to fetch https://apt.dockerproject.org/repo/dists/ubuntu-bionic/InRelease  403  Forbidden [IP: 13.33.98.216 443]
              E: The repository 'https://apt.dockerproject.org/repo ubuntu-bionic InRelease' is not signed.

当我使用另一个公式时,也会发生同样的事情。

我发现,如果要通过命令行手动安装软件包,则可以使用--allow-unauthenticated选项。

但是使用盐和盐配方时解决此问题的方法是什么?如何从未签名的存储库安装软件包?

2 个答案:

答案 0 :(得分:0)

在任何情况下,禁用程序包验证都是一个非常糟糕的主意。 Docker存储库完全符合Ubuntu软件包签名标准,并发布了GPG密钥进行验证。可以手动将其添加到系统中:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

但这不是这里的主要问题-这是您所指的Salt规则已过时并且设置了错误的Docker repo URL-在最近的安装脚本中,他们已将其从https://apt.dockerproject.org/repo更改为{{ 3}},虽然旧的镜像似乎可以正常工作,但是新版本的签名文件似乎在那里不可用,这很容易造成混淆。

因此使用Ansible(对不起,我不知道Salt):

- apt_key:
    url: https://download.docker.com/linux/ubuntu/gpg

- apt_repository:
    repo: 'deb https://download.docker.com/linux/ubuntu/ bionic stable'

- apt: name=docker-ce

答案 1 :(得分:-1)

您可以使用skip_verify来避免进行GPG验证检查(例如--allow-unauthenticated--force-bad-verify

httpd:
  pkg.installed:
    - fromrepo: mycustomrepo
    - skip_verify: True