【问题标题】:The repository is not signed to install a package on Ubuntu存储库未签名以在 Ubuntu 上安装软件包
【发布时间】:2020-05-29 19:35:11
【问题描述】:

我正在使用 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-formulas 时解决这个问题的方法是什么?如何从未签名的存储库安装包?

【问题讨论】:

    标签: salt-stack


    【解决方案1】:

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

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

    但这不是这里的主要问题 - 您所指的 Salt 规则已过时并设置了不正确的 Docker 存储库 URL - 在最近的安装脚本中,他们已将其从 https://apt.dockerproject.org/repo 更改为 https://download.docker.com/linux/ubuntu/ 和虽然旧镜像似乎正在工作,但新版本的签名文件似乎在那里不可用,这让 apt 感到困惑。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-03-15
        • 2018-02-07
        • 1970-01-01
        • 2020-05-31
        • 1970-01-01
        • 2017-03-22
        • 1970-01-01
        • 2018-08-05
        • 1970-01-01
        相关资源
        最近更新 更多