鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    在Ubuntu 22.04 中,输入指令sudo apt update报错,请求帮助

    已定时 已固定 已锁定 已移动 未解决
    综合问题
    ubuntu 22.04 apt更新失败 ros2 hamble 一键换源
    6
    12
    835
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • S
      SFLEteasb @SFLEteasb
      最后由 编辑

      @SFLEteasb 在执行了如上所述的解决办法后输入sudo apt update的日志输出如下:
      Hit:1 https://mirrors.ustc.edu.cn/ubuntu jammy InRelease
      Get:2 https://repo.huaweicloud.com/ros2/ubuntu jammy InRelease [4,682 B]
      Hit:3 https://mirrors.ustc.edu.cn/ubuntu jammy-updates InRelease
      Hit:4 https://mirrors.ustc.edu.cn/ubuntu jammy-backports InRelease
      Hit:5 https://mirrors.ustc.edu.cn/ubuntu jammy-security InRelease
      Err:2 https://repo.huaweicloud.com/ros2/ubuntu jammy InRelease
      The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
      Get:6 http://packages.ros.org/ros2/ubuntu jammy InRelease [4,682 B]
      Err:6 http://packages.ros.org/ros2/ubuntu jammy InRelease
      The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
      Reading package lists... Done
      W: GPG error: https://repo.huaweicloud.com/ros2/ubuntu jammy InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
      E: The repository 'https://repo.huaweicloud.com/ros2/ubuntu jammy InRelease' is not signed.
      N: Updating from such a repository can't be done securely, and is therefore disabled by default.
      N: See apt-secure(8) manpage for repository creation and user configuration details.
      W: GPG error: http://packages.ros.org/ros2/ubuntu jammy InRelease: The following signatures were invalid: EXPKEYSIG F42ED6FBAB17C654 Open Robotics info@osrfoundation.org
      E: The repository 'http://packages.ros.org/ros2/ubuntu jammy InRelease' is not signed.
      N: Updating from such a repository can't be done securely, and is therefore disabled by default.
      N: See apt-secure(8) manpage for repository creation and user configuration details.

      3 1 条回复 最后回复 回复 引用 0
      • S
        SFLEteasb @SFLEteasb
        最后由 编辑

        此回复已被删除!
        1 条回复 最后回复 回复 引用 0
        • S
          SFLEteasb @SFLEteasb
          最后由 编辑

          @SFLEteasb 补充:可以从github上克隆程序,网站也都可以ping通

          1 条回复 最后回复 回复 引用 0
          • M
            moon2416986352yue
            最后由 编辑

            你好,请问解决了吗

            S 1 条回复 最后回复 回复 引用 0
            • S
              SFLEteasb @moon2416986352yue
              最后由 编辑

              @moon2416986352yue 还没有诶()

              M 1 条回复 最后回复 回复 引用 0
              • 3
                3429494307 @SFLEteasb
                最后由 编辑

                @SFLEteasb 若密钥未更新且急需操作,可临时禁用签名验证:

                sudo apt update --allow-insecure-repositories # 允许更新源
                sudo apt install --allow-unauthenticated <包名> # 安装时忽略认证
                问了deepseek,用了一下管用,可以试试,这个密钥在昨天早上六点过期了,现在我也没找到有新密钥发布,只能先这样用着等大佬解决了
                密钥过期信息:
                pub (4)rsa4096/c1cf6e31e6bade8868b172b4f42ed6fbab17c654 2019-05-30T00:40:54Z

                uid Open Robotics info@osrfoundation.org
                sig cert f42ed6fbab17c654 2021-05-29T05:59:45Z 2025-06-01T05:59:45Z ____________________ [selfsig]
                sig cert f42ed6fbab17c654 2019-05-30T00:40:54Z 2021-05-29T00:40:54Z ____________________ [selfsig]把密钥输入这个网页就能查到相关信息https://keyserver.ubuntu.com/

                1 条回复 最后回复 回复 引用 0
                • M
                  moon2416986352yue @SFLEteasb
                  最后由 编辑

                  @SFLEteasb 我也是一样的问题,没有解决,蹲蹲,解决了麻烦告知一下🙇 🙇

                  小鱼小 1 条回复 最后回复 回复 引用 0
                  • 小鱼小
                    小鱼 技术大佬 @moon2416986352yue
                    最后由 编辑

                    @moon2416986352yue 刚搞俄嗯新了,重新尝试一下

                    新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                    S 1 条回复 最后回复 回复 引用 0
                    • S
                      SFLEteasb @小鱼
                      最后由 编辑

                      @小鱼 可以了谢谢大佬

                      1 条回复 最后回复 回复 引用 0
                      • F
                        firefirefox 年度VIP
                        最后由 编辑

                        关于ROS2源2025年6月1日公共密钥过期(NO_PUBKEY F42ED6FBAB17C654)的解决办法

                        摘要:
                        由于 ROS 官方 GPG 公钥于 2025 年 6 月 1 日过期,执行 sudo apt update 时会出现 NO_PUBKEY F42ED6FBAB17C654 错误。本攻略将逐步演示如何清理旧密钥、下载并导入新版密钥、重新添加 ROS 2 软件源,以恢复正常安装与更新。


                        目录

                        1. 删除原有的所有 ROS GPG 公钥
                        2. 安装工具依赖
                        3. 下载并安装新版 GPG 公钥
                        4. 添加 ROS 2 软件源
                        5. 更新源并验证
                        6. 常见问题与排查

                        删除原有的所有 ROS GPG 公钥

                        为了确保后续导入的新公钥不会与系统中残留的旧密钥冲突,先将所有旧的 keyring 文件与源列表清理干净。

                        sudo rm -f /usr/share/keyrings/ros-archive-keyring.gpg
                        sudo rm -f /etc/apt/keyrings/ros-archive-keyring.gpg
                        sudo rm -f /etc/apt/sources.list.d/ros2.list
                        sudo rm -f /etc/apt/sources.list.d/ros-fish.list
                        

                        ros-archive-keyring.gpg:旧版 ROS 2 公钥可能位于 /usr/share/keyrings 或 /etc/apt/keyrings。

                        ros2.list 与 ros-fish.list:之前添加的 ROS 2 软件源文件,删除它们以便后续重新配置。

                        安装工具依赖

                        在下载与安装新版公钥时,需要 curl、gnupg 与 lsb-release 等常用工具。执行以下命令,确保它们已安装在系统中:

                        sudo apt update
                        sudo apt install -y curl gnupg lsb-release
                        

                        curl:用于从 GitHub 拉取新版 ROS 公钥。

                        gnupg:用于将下载的 ASCII 格式公钥转换为二进制 .gpg 格式。

                        lsb-release:用于获取当前 Ubuntu 的发行版代号(lsb_release -cs 输出例如 jammy)。

                        下载并安装新版-gpg-公钥

                        1.创建存放 keyring 的目录

                        推荐将新的二进制公钥存放在 /etc/apt/keyrings/,这样更符合 Debian/Ubuntu 官方最佳实践。

                        sudo mkdir -p /etc/apt/keyrings
                        

                        2.下载 ROS 2 最新 GPG 公钥并去重装(dearmor)

                        从 ROS 官方 GitHub 仓库拉取 ros.key,并使用 gpg --dearmor 将其转换为二进制格式,存放到 /etc/apt/keyrings/ros-archive-keyring.gpg。

                        curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key \
                          | sudo gpg --dearmor -o /etc/apt/keyrings/ros-archive-keyring.gpg
                        

                        添加-ros-2-软件源

                        确认 Ubuntu 版本与 ROS 2 发行版对应关系

                        对于 ROS 2 Humble Hawksbill, 官方仅在 Ubuntu 22.04 Jammy 发布预编译包。

                        在其他 Ubuntu 版本(如 20.04 Focal、18.04 Bionic)上也能编译安装,但若需要通过 apt install,必须确保系统为 22.04 Jammy。

                        编写并添加 ros2.list 软件源

                        在添加软件源时,需指定 signed-by=/etc/apt/keyrings/ros-archive-keyring.gpg,以便 apt 校验新版公钥。

                        echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/ros-archive-keyring.gpg] \
                          http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" \
                          | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
                        

                        arch=amd64:如果您的机器是 x86_64 架构,请保持该值,如果是 英伟达jetson/树莓派/RK系列,请自行改成 ARM 架构对应的关键字。

                        $(lsb_release -cs):在 Ubuntu 22.04 上会输出 jammy。如果使用其他版本,请手动替换为对应代号。

                        /dev/null:隐藏 tee 命令的标准输出,仅将行写入 ros2.list 文件。

                        更新源并验证

                        1.完成上述文件操作后,执行以下命令刷新 APT 缓存并验证是否成功:

                        sudo apt update
                        

                        如果一切正常,不会再看到 NO_PUBKEY F42ED6FBAB17C654 或 “没有数字签名” 的报错。

                        更新完成后,即可通过 apt install ros-humble-<package> 安装所需 ROS 2 Humble 软件包(如 ros-humble-desktop、ros-humble-navigation2、ros-humble-ros2-control 等)。

                        常见问题与排查

                        仍然出现 NO_PUBKEY 或 “无法验证签名”

                        请确认 /etc/apt/keyrings/ros-archive-keyring.gpg 文件存在且大小大于 0 字节。

                        检查 /etc/apt/sources.list.d/ros2.list 中的 signed-by 路径与实际文件路径一致,且文件名无拼写错误。

                        1.使用命令查看系统中是否还存在旧的 ROS 公钥:

                        sudo apt-key list
                        

                        2.如果仍能看到指纹为 F42ED6FBAB17C654(或其他 ROS 相关指纹),请执行:

                        sudo apt-key del F42ED6FBAB17C654
                        

                        1.网络连接或镜像问题

                        确保能 ping packages.ros.org,并且没有被防火墙、代理或 DNS 污染阻挡。

                        如果在国内网络环境下速度慢或拉不到包,可以尝试使用国内镜像(如清华、阿里、华为等),但同样要确保先导入新版公钥,否则镜像的 InRelease 文件依然会因签名不匹配而报错。

                        例如,切换到清华镜像源的方法(仅示例,需先导入正版公钥):

                        echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/ros-archive-keyring.gpg] \
                          https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu $(lsb_release -cs) main" \
                          | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
                        

                        2.Ubuntu 版本与 ROS 2 发行版不匹配

                        请务必确认系统为 Ubuntu 22.04 Jammy,否则 apt install ros-humble-* 软件包并不存在。

                        若您使用的是 Ubuntu 20.04 Focal,可以改用 ROS 2 Foxy(对应 Focal);若是 Ubuntu 18.04 Bionic,则使用 ROS 2 Dashing/Bouncy(Bionic)。

                        如果要在不支持的 Ubuntu 版本上使用 Humble,只能通过从源代码编译,无法用 apt 直接安装。

                        3.目录与权限检查

                        /etc/apt/keyrings/ 目录权限应允许 root 用户读写。

                        /etc/apt/sources.list.d/ros2.list 文件应能被 apt 读取,可执行 ls -l 检查权限。

                        如果上述目录或文件权限异常,可能导致 apt update 时无法读取或验证。

                        2 1 条回复 最后回复 回复 引用 0
                        • 2
                          2383283320 @firefirefox
                          最后由 编辑

                          @firefirefox 请问我用的ros1,也是出现了校验数字签名时出错,可以用这个方法解决吗,我的系统是ubuntu20.04,哪一条指令是需要修改成自己的ubuntu版本或者ros1的对应版本呢?

                          1 条回复 最后回复 回复 引用 0
                          • 第一个帖子
                            最后一个帖子
                          皖ICP备16016415号-7
                          Powered by NodeBB | 鱼香ROS