25.12 apk vs 24.10 opkg: commands, package format and migration boundaries
One line
Section titled “One line”- 25.12+:
apk, packages are.apk; - 24.10 and older:
opkg, packages are.ipk; - They are not related by renaming; do not rename
.ipkto.apk; - After upgrading to 25.12, reinstall plugins from
apkfeeds; config can be backed up/restored.
Check which side you are on
Section titled “Check which side you are on”cat /etc/openwrt_releasecommand -v apkcommand -v opkgThis lab: 25.12.6, apk exists, opkg does not.
Comparison
Section titled “Comparison”| Item | 25.12 apk |
24.10 opkg |
|---|---|---|
| Format | .apk |
.ipk |
| Feed file | /etc/apk/repositories.d/distfeeds.list |
/etc/opkg/distfeeds.conf |
| Update index | apk update |
opkg update |
| Install | apk add <pkg> |
opkg install <pkg> |
| Remove | apk del <pkg> |
opkg remove <pkg> |
| Search | apk search <term> |
opkg list | grep <term> |
| Installed | apk list --installed |
opkg list-installed |
| Package info | apk info -a <pkg> |
opkg info <pkg> |
| Clean cache | apk cache clean |
opkg clean |
Feeds and architecture
Section titled “Feeds and architecture”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,archand kmod hash must match;- Mixing official/ImmortalWrt/iStoreOS feeds can break ABI/signatures/names;
- A China mirror changes the host/path prefix only; do not change target/arch.
Common operations
Section titled “Common operations”Router shellInstall a package on 25.12
apk updateapk search -x sqm-scriptsapk add sqm-scriptsapk info -e sqm-scriptsapk list --installed | wc -lThis lab: official/TUNA both 11220 packages; sqm-scripts 1.7.2-r1 installed.
ExpectedUpdate, search, install and verify all use apk.
Router shellEquivalent on 24.10
opkg updateopkg list | grep sqm-scriptsopkg install sqm-scriptsopkg list-installed | grep sqm-scriptsThese are official equivalent commands, not executed here (no 24.10 device); do not present them as measured output.
ExpectedCommands and format are opkg/ipk; do not mix apk.
When upgrading to 25.12
Section titled “When upgrading to 25.12”- Back up
/etc/configand the package list (see 018); - Record 24.10
opkg list-installed; - Upgrade/reflash 25.12 (see 019);
- Reinstall plugins from
apkfeeds; - Restore config, verify LuCI/service/DNS;
- Do not convert
.ipkto.apkor copy old package directories.
This lab’s 25.12 sysupgrade kept config but dropped packages 239→182; SQM/OpenClash needed reinstall.
Common failures
Section titled “Common failures”apk: not found
Section titled “apk: not found”- Firmware is 24.10 or older; use
opkg; - “Installing an apk package manager” is not the fix; check the release first.
opkg: not found
Section titled “opkg: not found”- Firmware is 25.12+; use
apk; - Old tutorials/scripts using
opkgdo not apply directly.
.ipk will not install
Section titled “.ipk will not install”- 25.12 uses
.apk; - Renaming does not change the format;
- Find the
.apkfor the release/target/arch or rebuild.
404/signature/dependency errors
Section titled “404/signature/dependency errors”- release/target/arch/kmod hash mismatch;
- mixed feeds;
- system time/certificates;
- do not routinely bypass with
--allow-untrusted.
No LuCI menu after upgrade
Section titled “No LuCI menu after upgrade”- main program installed without
luci-app-*; - old plugin not reinstalled;
- browser cache/relogin;
- see 017.
E2 lab run (2026-10-20)
Section titled “E2 lab run (2026-10-20)”- Environment: OpenWrt 25.12.6 x86 VM 200;
apk; official/TUNA feeds. - Official/TUNA
apk update: both 11220 packages;apk add sqm-scriptssucceeded. - After 25.12
sysupgrade: packages 239→182; SQM/OpenClash disappeared and needed reinstall. - Not executed: 24.10
opkgupdate/install/list, real 24.10→25.12 migration, cross-arch packages. - Recipe:
tests/recipes/apk-vs-opkg.md.
Sources and review
Section titled “Sources and review”- This is E2 partial: 25.12 apk was tested; 24.10 opkg is an official command reference, not executed here.
- Do not turn a command comparison into a “migration verified”; back up and test in a VM first.
- No independent reviewer; conclusions are limited to this 25.12 x86 environment.
Sources
Router.Homes
Independent OpenWrt notes. Every page states the firmware, device, package manager and way back.
Icons: Solar by 480 Design, CC BY 4.0