软件包管理与更新
本文档介绍 shimetapi RK3588 开发板在 Linux 系统下(出厂镜像为 Debian 12 bookworm)软件包的安装、卸载、更新方法,以及系统镜像的升级方式(OTA 在线升级、Recovery 模式恢复、SD 卡升级等),帮助开发者维护和更新系统环境。
适用范围: shimetapi RK3588 开发板(C-3588LQ V1.0 核心板 + SHIMETAPI-M5-R2A V1.0 底板)在 Linux 6.1(Debian 12 / Ubuntu 22.04)系统下的软件包管理。
1. 概念基础
1.1 必读:两条升级路径
理解这个区分,能避免不少常见问题。
| 路径 | 适用对象 | 常用工具 | 备注 |
|---|---|---|---|
| 软件包升级 | 用户态应用(Python / vim…) | apt update / upgrade | 不重启、不影响内核 |
| 系统升级 | 内核 / 启动 / 关键库 | 烧录新镜像 / OTA | 必须重启、有损坏 /userdata 风险 |
注意:出厂镜像的内核(6.1.141)是 Rockchip 自编译并内置在固件里的,不通过 apt 提供
linux-image标准包。 不要执行apt install linux-image-arm64:它会安装 Debian 通用内核,导致系统无法启动!
1.2 Debian 包管理三件套
| 工具 | 用途 | 层级 |
|---|---|---|
dpkg | 底层包管理(安装 / 卸载 / 查询) | 本地操作 |
apt | 高级包管理(依赖 / 源管理) | 在线操作 |
apt-get | apt 的脚本版,功能相同 | 脚本中常用 |
日常开发主要使用 apt。dpkg 只在安装本地 .deb 时才需要。
1.3 出厂镜像的软件源
查看当前源:
cat /etc/apt/sources.list输出(Debian 12 镜像默认):
deb http://mirrors.aliyun.com/debian bookworm main contrib
deb-src http://mirrors.aliyun.com/debian bookworm main contrib
deb http://mirrors.aliyun.com/debian-security bookworm-security main contrib
deb-src http://mirrors.aliyun.com/debian-security bookworm-security main contrib
deb http://mirrors.aliyun.com/debian bookworm-updates main contrib
deb-src http://mirrors.aliyun.com/debian bookworm-updates main contrib
deb http://mirrors.ustc.edu.cn/debian/ bookworm-backports main contrib
deb-src http://mirrors.ustc.edu.cn/debian/ bookworm-backports main contribDebian 镜像已预设 bookworm 仓库(阿里云主源 + USTC backports),无需手动配置即可使用
apt install。 Ubuntu 22.04 镜像默认为阿里云 ubuntu-ports 源(jammy),源内容见Debian 与 Ubuntu 镜像差异;下文换源示例以 Debian 源为例,Ubuntu 镜像换源时将地址换成对应的 ubuntu-ports 仓库即可。
2. 准备工作
2.1 确认网络通
部分 apt 操作需要联网。先确认:
ping -c 2 8.8.8.8如果不通,请先参考 网络配置与 SSH §2,让开发板通过 DHCP 拿到 IP。
2.2 切换为国内镜像(可选,加快速度)
如果使用国内网络、觉得 apt 慢,可以换成清华 / 阿里云等镜像源。
替换为清华镜像源:
# 备份
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 写入清华源
cat > /etc/apt/sources.list << 'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free
EOF
apt update替换为阿里云镜像源:
cat > /etc/apt/sources.list << 'EOF'
deb https://mirrors.aliyun.com/debian/ bookworm main contrib non-free
deb https://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free
deb https://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free
EOF
apt update3. 日常软件包操作
3.1 安装
# 单个
apt install -y vim
# 多个
apt install -y git wget curl
# 指定版本
apt install -y vim=2:8.2.3995-1
# 仅下载不安装
apt download openssh-server3.2 查找 / 查看
# 搜索(按名称或描述)
apt search vim
# 查看包详情
apt show vim
# 已安装的软件包
dpkg -l
dpkg -l | grep vim
# 包安装了哪些文件
dpkg -L vim
# 数一下本机安装了多少包
dpkg -l | wc -l输出示例:
$ apt search vim
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
正在排序...
全文搜索...
acr/oldstable 1.9.4-1 all
autoconf like tool
aerc/oldstable 0.14.0-1+b5 arm64
Pretty Good Email Client
...
$ apt show vim
Package: vim
Version: 2:9.0.1378-2+deb12u2
Priority: optional
Section: editors
Maintainer: Debian Vim Maintainers <team+vim@tracker.debian.org>
Installed-Size: 3,875 kB
...
$ dpkg -l | wc -l
1467注意:vim 当前未安装时,
dpkg -L vim会报错,需先apt install -y vim。
3.3 卸载
# 卸载软件包(保留配置文件)
apt remove -y vim
# 同时删除配置文件
apt purge -y vim
# 卸载不再需要的依赖
apt autoremove -y3.4 更新软件源索引 / 升级软件包
更新索引(推荐每次使用前执行):
apt update输出(节选):
命中:1 http://mirrors.aliyun.com/debian bookworm InRelease
命中:2 http://mirrors.aliyun.com/debian-security bookworm-security InRelease
...
已下载 26.6 MB,耗时 24秒 (1,110 kB/s)
有 109 个软件包可以升级。查看哪些包可升级:
apt list --upgradable升级:
# 仅升级(不卸载旧包、不安装新依赖)
apt upgrade -y
# 完整升级(处理依赖变更,可能增删包)
apt full-upgrade -y升级策略建议: 在产品环境使用
apt upgrade,避免 full-upgrade 自动增删关键包。
3.5 锁版本
防止特定软件包被误升级:
# 锁定
apt-mark hold vim
# 解除
apt-mark unhold vim
# 查看所有锁定的包
apt-mark showhold典型场景:锁住 SSH、NTP 等关键服务相关的包,等准备充分后再升级。
4. 系统更新
4.1 apt 升级(非内核)
apt update # 更新源
apt upgrade -y # 升级非内核软件包
reboot # 仅在升级了 systemd / glibc 等关键库后执行4.2 内核更新(关键)
再次强调:RK3588 出厂内核(6.1.141)是 Rockchip 自编译并内置的,不是 Debian 软件包。 不要执行
apt install linux-image-arm64!那会安装 Debian 通用内核、覆盖 RK3588 专用内核,导致系统无法启动。
查看当前内核版本:
uname -r输出:
6.1.141确认出厂内核不通过 apt 管理:
dpkg -l | grep linux-image输出:(空),说明出厂镜像没有安装任何 linux-image 包。
不要装的 Debian 通用内核(仅示例):
$ apt-cache search linux-image | head -3
linux-headers-6.1.0-47-arm64 - Header files for Linux 6.1.0-47-arm64
...这些是 Debian 仓库的 generic 6.1.0-XX headers 包,与 RK3588 出厂内核无关。
正确的内核升级路径:烧录新的系统镜像(详见 §5)。
4.3 查看系统信息
cat /etc/os-release # 发行版
uname -a # 内核
cat /proc/version # 内核编译详情
uptime # 运行时间$ uname -a
Linux linaro-alip 6.1.141 #11 SMP Fri Oct 9 10:22:09 CST 2026 aarch64 GNU/Linux
$ uptime
05:25:56 up 22 min, 1 user, load average: 0.06, 0.03, 0.03详细信息见 系统启动与基础操作 §4。
5. 系统升级(更换镜像)
5.1 四种方式对比
| 方式 | 适用场景 | 是否保留数据 | 难度 | 工具 |
|---|---|---|---|---|
| apt upgrade | 应用层更新 | 保留 | 最简单 | apt 命令 |
| OTA 在线升级 | 有网络、有官方 OTA | 通常保留 | 简单 | OTA 服务 / 脚本 |
| Recovery 模式 | 系统无法启动 | 取决于选项 | 中等 | RKDevTool |
| SD 卡升级 | 无网络、批量部署 | 通常不保留 | 中等 | SD 卡 + 拨码开关 |
| 线刷 | 全新烧录 / 救砖(修复刷坏的系统) | 不保留 | 需电脑 | RKDevTool |
简单记忆:
- 系统还能正常运行 →
apt upgrade升级应用,或 OTA 升级镜像- 系统起不来 → Recovery 模式或线刷修复(救砖)
5.2 OTA 在线升级
如果 Rockchip 提供了 OTA 升级服务:
查看当前固件版本:
cat /etc/os-release
cat /proc/version注意:
/etc/rockchip_version在本机出厂镜像中不存在,这一点已确认。 请改用/etc/os-release和/proc/version查看系统版本。
具体 OTA 命令以 Rockchip 或 shimetapi 官方文档为准。
5.3 Recovery 模式恢复
步骤 1:进入 Recovery 模式
- 断开开发板电源
- 按住 Recovery 按键(底板上的 RST 区域,具体位置见底板原理图)
- 接通电源,保持按住约 3 秒后松开
- 开发板将进入 Recovery 模式
步骤 2:用 RKDevTool 刷写
- 在电脑上打开 RKDevTool
- 通过 USB Type-C(OTG 口 J6)连接到开发板
- 确认设备管理器显示 "RK3588 Loader" 或 "RK3588 Maskrom"
- 选择固件镜像进行刷写
5.4 SD 卡升级
步骤 1:准备 SD 卡(电脑端操作)
- 在电脑上格式化 SD 卡(FAT32 或 ext4)
- 将固件镜像写入 SD 卡
步骤 2:从 SD 卡启动
- 将 SD 卡插入开发板 SD 卡槽
- 设置启动方式为 SD 卡(通过拨码开关或 U-Boot)
- 开发板上电,从 SD 卡启动
步骤 3:写入 eMMC(开发板端)
# 通常是 dd 命令或专用烧录脚本
# 具体操作命令以 Rockchip 官方文档为准5.5 线刷(救砖:修复刷坏的系统)
系统严重损坏无法启动,或需要全新安装时:
- 通过 USB Type-C(OTG 口 J6)连接开发板到电脑
- 进入 MaskROM 或 Loader 模式
- RKDevTool 中选择固件镜像
- 点击"升级"或"烧写"
详见 系统烧录指南。
6. 高级操作(按需)
6.1 查看依赖关系
# 查看包依赖
apt depends vim
# 反向依赖(哪些包依赖了 vim)
apt rdepends vim
# 修复破损依赖
apt --fix-broken install6.2 手动安装本地 deb 包
# 直接安装(不处理依赖)
dpkg -i ./package.deb
# 安装并处理依赖(推荐)
apt install -y ./package.deb
# 强制安装(谨慎)
dpkg -i --force-depends ./package.deb6.3 清理缓存
# 清空下载缓存
apt clean
# 仅清已过期的
apt autoclean
# 查看缓存大小
du -sh /var/cache/apt/7. 故障排除
7.1 apt update 失败
现象: apt update 报错 Could not resolve mirrors.xxx.com。
原因: DNS 解析失败或网络不通。
解决方案:
# 1. 检查网络
ping -c 4 8.8.8.8
# 2. 配置 DNS
echo "nameserver 114.114.114.114" > /etc/resolv.conf
# 3. 重试
apt update7.2 依赖冲突
现象: apt install 提示 Unmet dependencies。
解决方案:
# 自动修复
apt --fix-broken install
# 强制安装(谨慎,可能破坏系统)
apt install -y -f package_name7.3 磁盘空间不足
现象: apt install 提示 No space left on device。
解决方案:
# 看空间
df -h
# 清缓存
apt clean
# 清理日志
journalctl --vacuum-size=100M
# 清理旧内核(一般出厂镜像没装,无需操作;如曾装过,保留当前 uname -r 那个)
dpkg -l | grep linux-image | awk '{print $2}' | grep -v $(uname -r) | xargs apt purge -y相关文档
- 01_系统启动与基础操作 — 系统基础操作
- 02_网络配置与SSH — 网络配置
- 05_hardware-reference/00_硬件事实基线 — 硬件事实清单
