25.12 apk 与 24.10 opkg:命令、包格式与迁移边界
- 25.12+:
apk,包是.apk; - 24.10 及更早:
opkg,包是.ipk; - 两者不是改后缀的关系,不能把
.ipk改名成.apk安装; - 升级到 25.12 后,插件要按
apk源重装,配置可备份/恢复。
先确认你在哪一边
Section titled “先确认你在哪一边”cat /etc/openwrt_releasecommand -v apkcommand -v opkg本实验:25.12.6,apk 存在,opkg 不存在。
| 项目 | 25.12 apk |
24.10 opkg |
|---|---|---|
| 包格式 | .apk |
.ipk |
| 源文件 | /etc/apk/repositories.d/distfeeds.list |
/etc/opkg/distfeeds.conf |
| 更新索引 | apk update |
opkg update |
| 安装 | apk add <pkg> |
opkg install <pkg> |
| 删除 | apk del <pkg> |
opkg remove <pkg> |
| 搜索 | apk search <term> |
opkg list | grep <term> |
| 已安装 | apk list --installed |
opkg list-installed |
| 包信息 | apk info -a <pkg> |
opkg info <pkg> |
| 清理缓存 | apk cache clean |
opkg clean |
25.12:
https://downloads.openwrt.org/releases/25.12.6/targets/x86/64/packages/packages.adbhttps://downloads.openwrt.org/releases/25.12.6/packages/x86_64/base/packages.adbhttps://downloads.openwrt.org/releases/25.12.6/targets/x86/64/kmods/<kernel-hash>/packages.adb24.10:
src/gz openwrt_core https://downloads.openwrt.org/releases/24.10.8/targets/x86/64/packagessrc/gz openwrt_base https://downloads.openwrt.org/releases/24.10.8/packages/x86_64/baserelease、target、arch、kmod 内核 hash 必须匹配;- 混用官方/ImmortalWrt/iStoreOS 的源,ABI/签名/包名都可能不匹配;
- 国内镜像只替换主机名/路径前缀,不要改 target/arch。
路由器 Shell25.12 安装一个包
apk updateapk search -x sqm-scriptsapk add sqm-scriptsapk info -e sqm-scriptsapk list --installed | wc -l本实验官方/TUNA 源均为 11220 个包;sqm-scripts 1.7.2-r1 安装成功。
预期源更新、搜索、安装、验证都走 apk。
路由器 Shell24.10 等价操作
opkg updateopkg list | grep sqm-scriptsopkg install sqm-scriptsopkg list-installed | grep sqm-scripts这一组是官方文档等价命令,本次没有 24.10 设备,未执行;不要把它当成已实测输出。
预期命令和包格式都是 opkg/ipk,不混用 apk。
升级到 25.12 时
Section titled “升级到 25.12 时”- 备份
/etc/config和包列表(见 018); - 记录 24.10 的
opkg list-installed; - 升级/重刷 25.12(见 019);
- 用
apk源重装插件; - 恢复配置,验证 LuCI/服务/DNS;
- 不要尝试把
.ipk转成.apk,也不要直接复制旧包目录。
本实验的 25.12 sysupgrade:配置保留,但包从 239 降到 182;SQM/OpenClash 需要重装。
apk: not found
Section titled “apk: not found”- 固件是 24.10 或更早,应该用
opkg; - 不是“装一个 apk 包管理器”能解决;先看固件版本。
opkg: not found
Section titled “opkg: not found”- 固件是 25.12+,应该用
apk; - 旧教程/脚本里的
opkg不能直接套用。
.ipk 装不上
Section titled “.ipk 装不上”- 25.12 使用
.apk; - 改后缀不会改变包格式;
- 找对应 release/target/arch 的
.apk,或重新编译。
404/签名/依赖错误
Section titled “404/签名/依赖错误”- release/target/arch/kmod hash 不匹配;
- 混源;
- 系统时间/证书;
- 不要长期用
--allow-untrusted绕过。
升级后 LuCI 没菜单
Section titled “升级后 LuCI 没菜单”- 只装了主程序,没装
luci-app-*; - 旧插件未重装;
- 浏览器缓存/需要重登;
- 见 017。
E2 实测记录(2026-10-20)
Section titled “E2 实测记录(2026-10-20)”- 环境:OpenWrt 25.12.6 x86 VM 200;
apk;官方源/TUNA。 - 官方/TUNA
apk update:均 11220 个包;apk add sqm-scripts成功。 - 25.12
sysupgrade后:包 239→182;SQM/OpenClash 丢失,配置仍需重装程序。 - 未执行:24.10
opkg的 update/install/list、24.10→25.12 实际升级、跨架构包。 - 配方:
tests/recipes/apk-vs-opkg.md。
- 本页是 E2 partial:25.12 apk 实测;24.10 opkg 仅为官方等价命令,未在本次环境执行。
- 不要把“命令对照”写成“迁移已验证”;真实迁移要先备份、在 VM 试。
- 没有第二评审人;结论只限本次 25.12 x86 环境。