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

问题描述 投票:2回答:2

我正在使用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选项。

但是在使用Salt和salt-formula时解决这个问题的方法是什么?如何从未签名的存储库安装软件包?

salt-stack
2个回答
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更改为https://download.docker.com/linux/ubuntu/而旧镜像似乎是工作时,新版本的签名文件似乎不可用,这会让人感到困惑。

所以使用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
投票

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

httpd:
  pkg.installed:
    - fromrepo: mycustomrepo
    - skip_verify: True
© www.soinside.com 2019 - 2024. All rights reserved.