Docker构建失败:GPG错误NO_PUBKEY 1A127079A92F09ED求解决
解决ROS Foxy Docker镜像构建中Kitware源GPG密钥验证失败问题
针对你遇到的NO_PUBKEY 1A127079A92F09ED错误,以下是几种可行的解决方法:
方法1:直接从Kitware官方地址下载密钥并配置源
密钥服务器访问失败通常是网络或DNS问题导致的,直接从官方HTTPS地址获取密钥更可靠,同时遵循Ubuntu Focal后的APT密钥管理规范(弃用apt-key):
修改Dockerfile如下:
FROM ros:foxy ENV SHELL /bin/bash SHELL ["/bin/bash", "-c"] ENV MAKEFLAGS="-j 1" ENV LOCAL_WS=/ros2_ws # 清理旧Kitware源配置,下载并配置官方密钥 RUN rm -f /etc/apt/sources.list.d/kitware.list* \ && curl -fsSL https://apt.kitware.com/keys/kitware-archive-latest.asc | gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg \ && echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu focal main" > /etc/apt/sources.list.d/kitware.list RUN apt-get update \ && apt-get install -y --no-install-recommends gdb vim # 后续构建步骤...
如果最新密钥仍不兼容,可额外添加Kitware 2023版密钥作为备份:
RUN curl -fsSL https://apt.kitware.com/keys/kitware-archive-2023.asc | gpg --dearmor -o /usr/share/keyrings/kitware-archive-2023-keyring.gpg \ && echo "deb [signed-by=/usr/share/keyrings/kitware-archive-2023-keyring.gpg] https://apt.kitware.com/ubuntu focal main" >> /etc/apt/sources.list.d/kitware.list
方法2:使用国内Kitware镜像源
如果官方源访问缓慢或失败,替换为国内镜像(如清华镜像),同时下载对应镜像的密钥:
RUN rm -f /etc/apt/sources.list.d/kitware.list* \ && curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/kitware/apt/kitware-archive-latest.asc | gpg --dearmor -o /usr/share/keyrings/kitware-archive-keyring.gpg \ && echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/kitware/apt/focal focal main" > /etc/apt/sources.list.d/kitware.list
方法3:临时跳过GPG验证(仅测试用)
若仅需临时构建测试,可在apt-get update时添加参数跳过验证(不推荐生产环境使用):
RUN apt-get update --allow-unauthenticated \ && apt-get install -y --no-install-recommends gdb vim
内容的提问来源于stack exchange,提问作者AibohphobiA
相关产品推荐
相关产品推荐

