news 2026/4/26 20:18:25

树莓派执行sudo apt update出错:手把手教程(从零实现)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
树莓派执行sudo apt update出错:手把手教程(从零实现)

树莓派sudo apt update出错?别慌,一文彻底解决(实战全记录)

你有没有遇到过这种情况:刚插上电、连上网的树莓派,满怀期待地敲下一行sudo apt update,结果终端却报出一堆红字错误——连接超时、404 找不到、GPG 密钥缺失……系统更新卡在第一步,连装个基础软件都无从下手。

这几乎是每个新手玩树莓派都会踩的“坑”。而更让人头疼的是,网上搜到的解决方案五花八门,有的改源不加密钥,有的加密钥却不换路径,最后越改越乱,甚至导致系统无法识别软件包。

今天,我就带你从零开始,手把手走完一次完整的修复流程。不只是贴命令,更要讲清楚每一步背后的逻辑:为什么出错?为什么要这么改?以及如何避免未来再掉进同样的坑。


问题现场还原:一条命令引发的“血案”

我们先来复现典型场景:

pi@raspberrypi:~ $ sudo apt update Err:1 http://archive.raspbian.org/raspbian bookworm InRelease Could not resolve host: archive.raspbian.org Err:2 http://archive.raspberrypi.org/debian bookworm InRelease Cannot initiate the connection to archive.raspberrypi.org:80 Reading package lists... Done W: Failed to fetch http://archive.raspbian.org/raspbian/dists/bookworm/InRelease Could not resolve host: archive.raspbian.org W: Failed to fetch http://archive.raspberrypi.org/debian/dists/bookworm/InRelease Cannot initiate the connection W: Some index files failed to download. They have been ignored, or old ones used instead.

看到这些红色的Err:Could not resolve host,是不是瞬间心凉半截?

但其实,这类问题90%以上都集中在三个环节:
-网络不通
-源地址失效或访问慢
-GPG签名验证失败

接下来我们就逐个击破。


第一步:确认不是网络的问题

很多用户一上来就改源文件,殊不知可能是最基础的网络没通。

检查 DNS 与连通性

先试试能不能 ping 通一个外部域名:

ping -c 4 mirrors.tuna.tsinghua.edu.cn

如果返回如下信息:

ping: cannot resolve mirrors.tuna.tsinghua.edu.cn: Unknown host

说明你的树莓派压根解析不了域名 —— 问题不在 APT,而在 DNS!

解决方案:手动设置公共 DNS

编辑 DNS 配置文件:

sudo nano /etc/resolv.conf

在文件中添加:

nameserver 8.8.8.8 nameserver 114.114.114.114

保存退出后再次尝试 ping,应该就能通了。

⚠️ 提示:某些系统使用systemd-resolved管理 DNS,重启后配置可能丢失。建议通过/etc/dhcpcd.conf或网络管理工具持久化设置。


第二步:为什么官方源连不上?

你可能会问:“官方源怎么会连不上?”
答案是:可以连,但不一定快,甚至在国内基本连不上。

archive.raspbian.org是英国的服务器,物理距离远 + 中间路由复杂 + 可能被限速,导致请求经常超时或直接断开。

而且注意看错误里的协议是http://,没有加密。现代镜像站早已全面支持 HTTPS,安全性和稳定性更高。

所以我们的策略很明确:换国内高速镜像源 + 启用 HTTPS + 正确导入 GPG 密钥。


第三步:精准替换软件源(关键操作)

APT 的源配置分布在两个核心位置:

  1. /etc/apt/sources.list—— 主系统源
  2. /etc/apt/sources.list.d/raspi.list—— Raspberry Pi 官方附加组件源(如固件、工具等)

我们必须同时修改这两个文件,并保持版本一致。

先查清你的系统版本

执行:

cat /etc/os-release

重点关注这一行:

VERSION_CODENAME=bookworm

常见值有:
-bookworm(较新,默认)
-bullseye(旧版)

千万别写错!否则会出现“404 Not Found”。


修改主源文件:使用清华镜像站

备份原文件(重要!):

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

编辑文件:

sudo nano /etc/apt/sources.list

将所有内容清空或注释掉(前面加#),然后粘贴以下内容(以bookworm为例):

# 清华大学 TUNA 镜像源(HTTPS) deb https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bookworm main contrib non-free non-free-firmware deb-src https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bookworm main contrib non-free non-free-firmware

📌解释一下字段含义
-deb:二进制包源,用于安装软件
-deb-src:源码包源,开发者编译时用(可选保留)
-bookworm:发行代号,必须和你系统的匹配
-main:官方自由软件
-contrib:非自由但开源的附加程序
-non-free/non-free-firmware:闭源驱动和固件(如 Wi-Fi 芯片驱动)

如果你的系统是bullseye,只需把bookworm换成bullseye即可。


修改 Raspberry Pi 专用源

这个源包含摄像头支持、GPU 固件、raspi-config工具等关键组件。

同样先备份:

sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak

编辑:

sudo nano /etc/apt/sources.list.d/raspi.list

替换为:

# Raspberry Pi OS 专用组件(清华镜像) deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bookworm main

⚠️ 注意这里路径是raspberrypi,不是raspbian,别搞混!


第四步:导入 GPG 公钥,绕过签名验证失败

即使换了源,你还可能遇到这个经典错误:

NO_PUBKEY 9165938D9E9CFF2D

这是因为 APT 不信任这个新源的签名。我们需要手动导入其 GPG 公钥。

下载并安装 raspbian 源签名密钥(清华镜像)

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian.public.key | sudo gpg --dearmor -o /usr/share/keyrings/raspbian-tuna.gpg

下载并安装 raspberrypi 源签名密钥

虽然我们用了清华镜像,但它同步的是原始archive.raspberrypi.org的内容,所以要用官方密钥:

curl -fsSL https://archive.raspberrypi.org/debian/archive.key | sudo gpg --dearmor -o /usr/share/keyrings/raspberrypi-archive-keyring.gpg

--dearmor的作用是把 ASCII 格式的.asc密钥转成二进制.gpg文件,符合 Debian 推荐的标准做法。


第五步:让 APT 知道该用哪个密钥验证哪个源(高级技巧)

默认情况下,APT 会自动查找钥匙环,但为了更安全、更清晰,我们可以显式指定每个源使用的密钥

回到刚才编辑的两个文件,在 URL 后面加上signed-by=参数。

更新/etc/apt/sources.list

修改为:

deb [signed-by=/usr/share/keyrings/raspbian-tuna.gpg] https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bookworm main contrib non-free non-free-firmware deb-src [signed-by=/usr/share/keyrings/raspbian-tuna.gpg] https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bookworm main contrib non-free non-free-firmware

更新/etc/apt/sources.list.d/raspi.list

修改为:

deb [signed-by=/usr/share/keyrings/raspberrypi-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bookworm main

这样做有什么好处?
- 明确绑定源与密钥,防止误信其他签名
- 提高安全性,抵御中间人攻击
- 日后排查问题更容易定位


第六步:最终测试 —— 见证奇迹的时刻

一切准备就绪,运行:

sudo apt update

如果一切正常,你会看到类似输出:

Get:1 https://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian bookworm InRelease [15.0 kB] Get:2 https://mirrors.tuna.tsinghua.edu.cn/raspberrypi bookworm InRelease [13.4 kB] ... Fetched 28.4 kB in 2s (14.2 kB/s) Reading package lists... Done Building dependency tree... Done All packages are up to date.

🎉 成功了!红字消失,绿色进度条滚动起来。

现在你可以安心执行:

sudo apt upgrade

升级系统,或者安装你需要的软件。


常见错误对照表(快速排错指南)

错误现象可能原因解决方法
Could not resolve hostDNS 问题或网络未通检查/etc/resolv.conf,设置 8.8.8.8
404 Not Found版本名错误(bookworm/bullseye 写错)查看/etc/os-release确认版本
NO_PUBKEY XXXXXXXX缺少对应 GPG 密钥使用curl + gpg --dearmor导入
SSL certificate problem系统时间错误或 CA 证书缺失运行sudo apt install ca-certificates并校准时间
更新极慢但仍成功使用了 HTTP 而非 HTTPS,或未使用国内镜像改为 HTTPS + 国内镜像源

实战经验分享:老司机的几点忠告

  1. 不要混用不同镜像站
    比如主源用清华,raspi.list 用中科大,可能导致元数据不一致,出现“版本冲突”或“依赖无法满足”。

  2. 优先选择 HTTPS 源
    HTTP 明文传输容易被劫持,尤其是在公共网络下风险极高。

  3. 定期清理废弃源
    多次尝试修改后,.list文件里可能残留大量注释行或无效条目。记得删除或归档,保持整洁。

  4. 启用自动时间同步
    TLS 证书验证依赖准确的时间。建议开启 NTP:

bash sudo timedatectl set-ntp true

  1. 批量部署时脚本化处理
    如果你管理多个树莓派,可以把上述步骤写成一键脚本,提高效率。

写在最后:解决问题只是开始

通过这次完整的排错过程,你应该已经不再把sources.list当作一个神秘的配置文件了。它本质上就是一个“软件地图”,告诉系统去哪里下载可信的内容。

掌握这套方法的意义不仅在于修好一次apt update,更在于建立起对 Linux 包管理系统的基本认知:

  • 软件从哪里来?
  • 如何保证它是安全的?
  • 出错了该怎么一步步追踪?

这才是嵌入式开发、DevOps 运维中最宝贵的底层能力。

下次当你面对一个新的 Linux 发行版,或是要为公司设备搭建私有仓库时,你会发现,今天的经历早已为你打下了坚实的基础。

如果你觉得这篇文章帮你避开了一个大坑,欢迎点赞收藏;如果有其他问题,也欢迎在评论区留言交流 —— 一起进步,才是技术社区最美的风景。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 6:10:22

SD-PPP:3分钟解锁Photoshop中的AI绘图超能力

SD-PPP:3分钟解锁Photoshop中的AI绘图超能力 【免费下载链接】sd-ppp Getting/sending picture from/to Photoshop in ComfyUI or SD 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp 还在为AI绘图和Photoshop之间的频繁切换而头疼吗?SD-PPP…

作者头像 李华
网站建设 2026/4/24 14:57:39

如何用LabVIEW在3分钟内控制STM32?开源项目labview-stm32完全指南

如何用LabVIEW在3分钟内控制STM32?开源项目labview-stm32完全指南 【免费下载链接】labview-stm32 项目地址: https://gitcode.com/gh_mirrors/la/labview-stm32 想要快速上手STM32开发却对复杂的C语言代码望而却步?labview-stm32开源项目为你提…

作者头像 李华
网站建设 2026/4/26 3:05:00

小米运动刷步数2025终极指南:免费自动同步微信支付宝

小米运动刷步数2025终极指南:免费自动同步微信支付宝 【免费下载链接】mimotion 小米运动刷步数(微信支付宝)支持邮箱登录 项目地址: https://gitcode.com/gh_mirrors/mimo/mimotion 小米运动刷步数工具是一款专为Zepp Life用户设计的…

作者头像 李华
网站建设 2026/4/18 6:41:47

蓝牙水控器开源项目深度使用手册

蓝牙水控器开源项目深度使用手册 【免费下载链接】waterctl 深圳市常工电子“蓝牙水控器”控制程序的开源实现。适用于国内各大高校宿舍热水器。 项目地址: https://gitcode.com/gh_mirrors/wa/waterctl 技术架构与核心价值 本项目采用现代化Web技术栈构建,…

作者头像 李华
网站建设 2026/4/24 22:21:25

鸣潮120帧解锁终极方案:WaveTools性能优化深度指南

鸣潮120帧解锁终极方案:WaveTools性能优化深度指南 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 鸣潮1.2版本更新后,许多玩家发现原有的120帧设置突然失效,这并非个别…

作者头像 李华
网站建设 2026/4/22 23:32:10

Windows Defender深度管理:系统安全组件精准控制实战指南

Windows Defender深度管理:系统安全组件精准控制实战指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/…

作者头像 李华