If I generate "Generate archive" to use when updatening
and save "installed by user" installed packages.
owut list | tr ' ' '\n' > /etc/config/installed_packages
How to config owut then when reinstall.
Octopus.
If I generate "Generate archive" to use when updatening
and save "installed by user" installed packages.
owut list | tr ' ' '\n' > /etc/config/installed_packages
How to config owut then when reinstall.
Octopus.
Why, owut does exactly this for you.
It builds a custom upgrade/downgrade image with all the currently installed packages.
Yes, I know but unsure how to do it.
If eg want to move to a new router with saved settings or resett and start fresh with saved settings.
Doubt you can cross build.
The settings on one device will very likely break the other device, as names and paths to devices are usually completely different.
But, you can still replicate the installed packages pretty easily:
old-router$ owut list
< copy the output package list >
Log into the new router:
new-router$ owut upgrade --add '<paste list here>'
...
Thanks for your answer.
Maybe I wasn't clear on what I wanted. If I want to do a full reset and recreate my configuration. Save my âbackupâ and "owut list" then recreate my configuration.
How should the "owut list" be when you recreate?
Should they be in a row or on new lines \n?
Probably the same as the owut list shown, in a row.
new-router$ owut upgrade --add '<paste list here>'
Octopus
Config can be mostly imported, but preferably by hand.
You can also use firmware-selector to paste the list of packages, and request a custom image.
Okey thanks.
Just tested and seems working.
openwrt-25.12.0-5a058e7eccee-mediatek-filogic-glinet_gl-mt6000-squashfs-sysupgrade
I only see this:
/builder/build_dir/target-aarch64_cortex-a53_musl/root-mediatek/etc/init.d/vsftpd: line 8: /lib/functions.sh: No such file or directory
./etc/init.d/vsftpd: line 8: /lib/functions.sh: No such file or directory
After that upload backup and then we are back agin.
Octopus
I've seen this functions.sh error in other arches too, no idea why it's happening, but if it works, it works.
Yeah, like @frollic said, the Firmware Selector is the easiest solution as that is the default format for the owut list output.
If you do end up using owut upgrade, all whitespace is considered the same, so you can do things like this:
$ cat adds
nmap
ndptool
dnsmasq-full
$ cat removes
dnsmasq
$ owut upgrade --add "$(cat adds)" --remove "$(cat removes)"
...
Default package analysis:
Default Provided-by
dnsmasq dnsmasq-full
kmod-dwmac-intel not installed
libustream-mbedtls not installed
nftables nftables-json
But what about "ilibncursesw6", "uci-firewall" packges? And others? like "ip"? I Iinstall "ip-full"
root@OpenWrt:/etc/config# apk list --providers ip
<ip> ip-full-6.18.0-r2 x86_64 {feeds/base/network/utils/iproute2} (GPL-2.0) [installed]
<ip> ip-tiny-6.18.0-r2 x86_64 {feeds/base/network/utils/iproute2} (GPL-2.0)
root@OpenWrt:/etc/config# apk list --providers libncursesw6
<libncursesw6> libncurses6-6.4-r3 x86_64 {feeds/base/libs/ncurses} (MIT) [installed]
<libncursesw6> libncurses6-6.4-r3 x86_64 {feeds/base/libs/ncurses} (MIT)
root@OpenWrt:/etc/config# apk list --providers uci-firewall
<uci-firewall> firewall-2025.10.03~3a65fde5-r2 x86_64 {feeds/base/network/config/firewall} (ISC)
<uci-firewall> firewall4-2025.03.17~b6e51575-r2 x86_64 {feeds/base/network/config/firewall4} (ISC) [installed]
<uci-firewall> firewall4-2025.03.17~b6e51575-r2 x86_64 {feeds/base/network/config/firewall4} (ISC)
Then I run "apk delete ip-full", also remove ddns-*?
I use "owut upgrade"?
I think imagebuilder is save now.
I'm not following. Those packages are usually dependencies, so are not installed explicitly, they are installed as a result of installing some "higher level" package that requires them. Same for the virual package ip...
yes If I try to install adblock, tell me `libncursesw6` is missing from the repository or has not been installed?
but I run this:
root@OpenWrt:~# apk list --providers libncursesw6
libncurses6-6.4-r3 x86_64 {feeds/base/libs/ncurses} (MIT) [installed]
libncurses6-6.4-r3 x86_64 {feeds/base/libs/ncurses} (MIT)
I already installed this(build ROM by imagebuilder)?
Other rolling updates Linux distribution, like Manjaro, I installed this system in 2017 and have kept it running 24/7 for PT purposes. When it comes time to update, I simply access the GUI, exit my download client, and click "Install." After entering my administrator password, the system handles everything for me, including the installation of any necessary dependencies. The process is just as seamless when installing new package; the system merely prompts me to confirm whether a reboot is required, same after uninstalling package. I also can easily run the command `sudo pacman -Rs $(pacman -Qdtq)` to remove any orphaned packages. It has been running stably for nearly 10 years.
Show us the command you are using to install adblock and its output.
The GUI prompted me to update, so I switched to a different package to install:
root@OpenWrt:~# apk add ip
OK: 66.1 MiB in 303 packages
root@OpenWrt:~# apk add ddns-scripts-dnspod-v3
(1/3) Installing libopenssl-conf (3.5.6-r1)
Executing libopenssl-conf-3.5.6-r1.post-install
- Generating engines.cnf
- Generating providers.cnf
(2/3) Installing openssl-util (3.5.6-r1)
Executing openssl-util-3.5.6-r1.post-install
(3/3) Installing ddns-scripts-dnspod-v3 (2.8.3-r5)
Executing ddns-scripts-dnspod-v3-2.8.3-r5.post-install
OK: 67.0 MiB in 306 packages
However, when I tried to install it via the GUI, the prompt appeared as follows:
So, if I want to update installed packages or install new ones, do I have to check the GUI to see what dependencies are required? Then do I have to go to the command line and run the installation twiceâonce specifically to install the dependencies first?
The LuCI Package Manager is broken (https://github.com/openwrt/luci/pull/8593), so just ignore it. Use apk and owut, you'll get what is needed without errors.
Does Manjaro install on your router, with 8-40 MB flash and 64-1024 MB RAM? This discussion has been taken place numerous times in the past, so for the details please use the forum search, but for the short version. Dealing with very limited OEM bootloaders that don't support kernel selection/ removable media, etc., often rather unfortunate OEM partitioning that limits the available space to the double digit MB range (or less) and the total flash size has impacts on what can be done, independent of the package managers actual abilities. Hard size limits require hard decisions and these shortcomings are what makes it possible to flash OpenWrt on an 8/64 system in the first place.
Iâll just use Manjaro as an example: it even allows you to switch between different kernels directly via the GUI. Compared to the older opkg system, I personally feel that the new apk package management system is not quite mature yet and still has room for improvement. For instance, even after I installed the ip-full package, installing other packages that depend on ip would still trigger a warning stating that ip was not installedâwhich I found a bit puzzling. Of course, I am deeply grateful to the developers and hope that OpenWrt continues to improve and becomes even more user-friendly for the average user.
Was that warning from apk or from the broken LuCI Package Manager?