Linux系统APT包管理工具 apt update错误的解决!

在运行 apt update 命令时候,出现类似警告:

W: http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

遇到的警告信息是由于 APT 软件源密钥管理方式的变化引起的。以下是问题的解释和解决方法:


问题原因

  • 旧版 Debian/Ubuntu 使用 /etc/apt/trusted.gpg 统一存储所有软件源的 GPG 密钥。
  • 新版系统(如 Debian Bookworm)推荐将每个软件源的密钥单独存储在 /etc/apt/trusted.gpg.d/ 目录中,并废弃了旧方法。
  • 你的系统中某些软件源密钥仍存储在旧的 trusted.gpg 中,因此触发警告。

解决方法

推荐方法一

方法一、可以直接从 Raspbian 官网获取新密钥:

wget -qO- https://archive.raspbian.org/raspbian.public.key | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/raspbian.gpg

完成后再次运行 sudo apt update 验证警告解决。

注意事项

  • 密钥安全性:确保新密钥文件权限为 644(命令:sudo chmod 644 /etc/apt/trusted.gpg.d/raspbian.gpg)。
  • 多架构支持:如果你同时使用 armhfarm64,需确认密钥是否兼容。

方法二、需将旧密钥迁移到新位置,步骤如下:

1. 找到受影响的密钥

从警告信息看,问题出在 http://raspbian.raspberrypi.com/raspbian 的密钥。你需要找到该源的 GPG 密钥。

2. 导出旧密钥

运行以下命令导出密钥(需替换实际的密钥ID):

sudo apt-key export <KEY_ID> | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/raspbian.gpg

如果不知道密钥ID,可通过以下方式查找:

sudo apt-key list
# 找到与 "raspbian.raspberrypi.com" 相关的密钥ID(例如:ABCD1234)

3. 更新软件源配置

编辑对应的软件源文件(通常位于 /etc/apt/sources.list/etc/apt/sources.list.d/ 目录),在软件源地址后添加 signed-by 参数:

# 示例(修改前):
deb http://raspbian.raspberrypi.com/raspbian bookworm main

# 修改后:
deb [signed-by=/etc/apt/trusted.gpg.d/raspbian.gpg] http://raspbian.raspberrypi.com/raspbian bookworm main

4. 删除旧密钥(可选)

确保新密钥生效后,可删除旧密钥:

sudo apt-key del <KEY_ID>

5. 更新软件列表

sudo apt update

此时警告应已消失。

posted @ 2025-03-27 10:39  土著古  阅读(225)  评论(0)    收藏  举报