This is a post about what just happened to me, a relatively new openwrt user. I wanted to install luci-app-banip. It wouldn't work. Some installed libraries' versions are too new (?):
# apk add luci-app-banip
ERROR: unable to select packages:
libubox20250723-2025.07.23~49056d17-r1:
conflicts: libubox20251004-2025.10.04~c163d7ab-r1[libubox=2025.07.23~49056d17-r1]
satisfies: world[libubox20250723] block-mount-2025.07.05~e8cd820c-r1[libubox20250723] cgi-io-2022.08.10~901b0f04-r21[libubox20250723] jshn-2025.07.23~49056d17-r1[libubox20250723]
jsonfilter-2025.04.18~8a86fb78-r1[libubox20250723] libblobmsg-json20250723-2025.07.23~49056d17-r1[libubox20250723]
libjson-script20250723-2025.07.23~49056d17-r1[libubox20250723] libubus20250702-2025.07.02~5952b48e-r1[libubox20250723] libuci20250120-2025.08.14~9033e8c2-r1[libubox20250723]
libuclient20201210-2024.10.22~88ae8f20-r1[libubox20250723] libudebug-2025.08.24~edeb4d6d[libubox20250723] libustream-mbedtls20201210-2024.07.28~99bd3d2b-r1[libubox20250723]
logd-2024.04.26~85f10530-r1[libubox20250723] mtd-26[libubox20250723] netifd-2025.08.14~8c139e18-r1[libubox20250723] odhcp6c-2025.02.06~8aa8b706-r1[libubox20250723]
odhcpd-ipv6only-2024.05.08~a2988231-r1[libubox20250723] procd-2025.08.12~dafdf98b-r1[libubox20250723] procd-seccomp-2025.08.12~dafdf98b-r1[libubox20250723]
procd-ujail-2025.08.12~dafdf98b-r1[libubox20250723] rpcd-2025.08.09~1905e096-r1[libubox20250723] rpcd-mod-file-2025.08.09~1905e096-r1[libubox20250723]
rpcd-mod-iwinfo-2025.08.09~1905e096-r1[libubox20250723] rpcd-mod-luci-20240305-r1[libubox20250723] rpcd-mod-rrdns-20170710[libubox20250723]
rpcd-mod-ucode-2025.08.09~1905e096-r1[libubox20250723] ubox-2024.04.26~85f10530-r1[libubox20250723] ubusd-2025.07.02~5952b48e-r1[libubox20250723]
ucode-mod-log-2025.07.18~3f64c808-r1[libubox20250723] ucode-mod-nl80211-2025.07.18~3f64c808-r1[libubox20250723] ucode-mod-rtnl-2025.07.18~3f64c808-r1[libubox20250723]
ucode-mod-uloop-2025.07.18~3f64c808-r1[libubox20250723] uhttpd-2025.07.06~7e64e8ba-r5[libubox20250723] urngd-2023.11.01~44365eb1-r1[libubox20250723]
usign-2020.05.23~f1f65026-r1[libubox20250723]
libubus20250702-2025.07.02~5952b48e-r1:
conflicts: libubus20251017-2025.10.17~60e04048-r1[libubus=2025.07.02~5952b48e-r1]
satisfies: world[libubus20250702] cgi-io-2022.08.10~901b0f04-r21[libubus20250702] dnsmasq-2.91-r2[libubus20250702] libiwinfo20230701-2025.02.06~9cec6b4d-r1[libubus20250702]
libubus-lua-2025.07.02~5952b48e-r1[libubus20250702] libudebug-2025.08.24~edeb4d6d[libubus20250702] logd-2024.04.26~85f10530-r1[libubus20250702]
netifd-2025.08.14~8c139e18-r1[libubus20250702] odhcpd-ipv6only-2024.05.08~a2988231-r1[libubus20250702] procd-2025.08.12~dafdf98b-r1[libubus20250702]
procd-ujail-2025.08.12~dafdf98b-r1[libubus20250702] rpcd-2025.08.09~1905e096-r1[libubus20250702] rpcd-mod-file-2025.08.09~1905e096-r1[libubus20250702]
rpcd-mod-iwinfo-2025.08.09~1905e096-r1[libubus20250702] rpcd-mod-luci-20240305-r1[libubus20250702] rpcd-mod-rrdns-20170710[libubus20250702]
rpcd-mod-ucode-2025.08.09~1905e096-r1[libubus20250702] ubox-2024.04.26~85f10530-r1[libubus20250702] ubus-2025.07.02~5952b48e-r1[libubus20250702]
ucode-mod-ubus-2025.07.18~3f64c808-r1[libubus20250702] uhttpd-mod-ubus-2025.07.06~7e64e8ba-r5[libubus20250702] wpad-basic-mbedtls-2025.08.26~ca266cc2-r1[libubus20250702]
libubox20251004-2025.10.04~c163d7ab-r1:
conflicts: libubox20250723-2025.07.23~49056d17-r1[libubox=2025.10.04~c163d7ab-r1]
satisfies: libubus20251017-2025.10.17~60e04048-r1[libubox20251004] rpcd-mod-rpcsys-2025.10.03~cfb93f10-r1[libubox20251004]
libubus20251017-2025.10.17~60e04048-r1:
conflicts: libubus20250702-2025.07.02~5952b48e-r1[libubus=2025.10.17~60e04048-r1]
satisfies: rpcd-mod-rpcsys-2025.10.03~cfb93f10-r1[libubus20251017]
```
I couldn’t find any way to revert to the older version of libubox or libubus, or fix their install (happy to learn what to do next time though!).
So I get a bit desperate and decide to try to force it to install, thinking these libraries are most likely nearly or totally compatible anyway, and worst case, I’ll end up with a broken install.
BIG MISTAKE:
# apk add -f luci-app-banip
( 1/190) Purging apk-mbedtls (3.0.0_pre20250606-r2)
apk-mbedtls-3.0.0_pre20250606-r2.pre-deinstall: Executing script...
( 2/190) Purging base-files (1667~f26260c7e7)
base-files-1667~f26260c7e7.pre-deinstall: Executing script...
base-files-1667~f26260c7e7.pre-deinstall: umount: can't remount /dev/mmcblk0p7 read-only
base-files-1667~f26260c7e7.pre-deinstall: umount: can't remount /dev/sda1 read-only
base-files-1667~f26260c7e7.pre-deinstall: umount: can't remount /dev/mmcblk0p7 read-only
base-files-1667~f26260c7e7.pre-deinstall: umount: devpts busy - remounted read-only
base-files-1667~f26260c7e7.pre-deinstall: umount: tmpfs busy - remounted read-only
base-files-1667~f26260c7e7.pre-deinstall: umount: can't remount overlayfs:/overlay read-only
base-files-1667~f26260c7e7.pre-deinstall: umount: can't remount tmpfs read-only
base-files-1667~f26260c7e7.pre-deinstall: umount: proc busy - remounted read-only
( 3/190) Purging busybox (1.37.0-r5)
busybox-1.37.0-r5.pre-deinstall: Executing script...
( 4/190) Purging fstools (2025.07.05~e8cd820c-r1)
fstools-2025.07.05~e8cd820c-r1.pre-deinstall: Executing script...
fstools-2025.07.05~e8cd820c-r1.pre-deinstall: execve: No such file or directory
ERROR: fstools-2025.07.05~e8cd820c-r1.pre-deinstall: exited with error 127
( 5/190) Purging jsonfilter (2025.04.18~8a86fb78-r1)
jsonfilter-2025.04.18~8a86fb78-r1.pre-deinstall: Executing script...
jsonfilter-2025.04.18~8a86fb78-r1.pre-deinstall: execve: No such file or directory
ERROR: jsonfilter-2025.04.18~8a86fb78-r1.pre-deinstall: exited with error 127
( 6/190) Purging procd (2025.08.12~dafdf98b-r1)
procd-2025.08.12~dafdf98b-r1.pre-deinstall: Executing script...
procd-2025.08.12~dafdf98b-r1.pre-deinstall: execve: No such file or directory
...
Instead, it goes off PURGING 190 packages, starting with base-files and busybox! Once it’s done that, (of course) it starts failing completely but it doesn’t stop trying! What kind of madness is this?
My proximate question is, what the heck can I do now? I haven’t rebooted, because I assume it’ll be a useless brick if I do. But I also no longer have ls (though I can use tab completion to find files in a directory), apk, mount, all permanent storage seems to be unmounted. I do have a backup of most of my config but jeez. I do have scp so I could maybe get a static build of apk and use it to re-install busybox and base-files if that were possible?? Is there anything I can do?
My broader question, well, really assertion, is: this can not be a reasonable outcome of such a command. In no case should adding (installing) a package start by removing (what appears to be) your entire system. apk has got to be smarter than this, or at the very minimum ask for approval with lots of scary warnings.