All packages can update except for one

Hey,

basically the title. It's driving me nuts and I cannot for the life of me figure out what the issue is when I try to run opkg update. I read a bunch of discussions etc. and managed to get most of it working - except for one?!

root@OpenWrt:~# opkg update
Downloading https://downloads.openwrt.org/snapshots/targets/qualcommax/ipq807x/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading https://downloads.openwrt.org/snapshots/targets/qualcommax/ipq807x/packages/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/base/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/base/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/snapshots/targets/qualcommax/ipq807x/kmods/6.6.27-1-255a2e25ae0f30f5f413d5baf04c1912/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_kmods
Downloading https://downloads.openwrt.org/snapshots/targets/qualcommax/ipq807x/kmods/6.6.27-1-255a2e25ae0f30f5f413d5baf04c1912/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_luci
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/luci/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/packages/Packages.gz
*** Failed to download the package list from https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/packages/Packages.gz

Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_routing
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/routing/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_telephony
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/telephony/Packages.sig
Signature check passed.
Collected errors:
 * xsystem: wget: Child killed by signal 6.
 * opkg_download: Failed to download https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/packages/Packages.gz, wget returned -1.

So apparently it's not a DNS issue, not a date issue, nor some other type of connectivity issue, since all but one packages seem to work fine. However, this one single package makes it so that I cannot, e.g., install luci because:

root@OpenWrt:~# opkg install luci
Installing luci (23.051.66410~a505bb1) to root...
Downloading https://downloads.openwrt.org/snapshots/packages/aarch64_cortex-a53/luci/luci_23.051.66410~a505bb1_all.ipk
Collected errors:
 * pkg_hash_check_unresolved: cannot find dependency cgi-io for luci-base
 * pkg_hash_fetch_best_installation_candidate: Packages for luci-base found, but incompatible with the architectures configured
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-nf-reject
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-nf-reject6
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-nf-log
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-nf-log6
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-crypto-crc32c
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-nft-core
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-nf-flow
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-nf-ipt
 * pkg_hash_check_unresolved: cannot find dependency kernel (= 6.6.28~99515ee2bda771c87d2079f34d2b8a96-r1) for kmod-ipt-core
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for luci:
 * 	cgi-io
 * opkg_install_cmd: Cannot install package luci.

I already tried manually installing cgi-io, but this just cascades into installing more and more packages manually, which eventually becomes a fairly cumbersome process which I'm uneager to embark on. This is now on an entirely vanilla install; after a number of attempts to fix this and making absolutely zero progress, I eventually ran firstboot -y && reboot now and that's where I'm standing now.

Does anybody have an idea of what needs to be done to be able to update packages via opkg update on a vanilla install?

When you get the message “Cannot satisfy the following dependencies for…” it is most likely because you installed a snapshot version of OpenWrt.
Read here for possible solutions.

3 Likes

Indeed it is/was! Thank you very much :slight_smile:

So do I understand correctly that on snapshot releases, you can only update the package index/install new applications on the day of installing the snapshot? If so, I'm guessing the best approach to updating/installing anything new would then be to make a backup of the config, install the daily snapshot, and subsequently install whatever one is looking to install?

1 Like

Not "the day of", but "for a while", where "a while" is squishy and you'll only know when it fails... Usually a week or maybe two, but that's never guaranteed.

3 Likes

Gotcha, thanks a bunch!

1 Like

One more related question: In the link that @psherman provided, it says

Solution #2: Try to install via opkg with option --force-depends (=Install/remove despite failed dependencies). Mind that this is likely to fail for kernel related packages (kmods). Note that failing/incompatible kernel modules may cause the device to crash or not to reboot properly.

I'm looking to install kmod-batman-adv to mesh my VLANs - should I attempt this, or does the note regarding incompatible kernel modules from the quote above apply here? I'm thinking the latter applies only if/when the message “Cannot satisfy the following dependencies for...” or “The installed version of package kernel is not compatible, require...” pops up after I attempted to install a package, right?

So I can safely attempt to install the batman package and if all goes well, I shouldn't be concerned with anything. And if I receive one of the previoulsy mentioned errors, I could proceed using --force-depends, bearing the risks mentioned?

Attempting to use force on a kmod is almost certainly a recipe for disaster. What it does is replaces the libraries that the newly installed kmod requires with the new versions (and those usually are depended upon by many other kmods and kernel pieces), while leaving all the rest of the kernel at the old version, so the chances of something bad happening are very high.

I would strongly recommend installing a full upgrade, use auc or whatever to keep your current configuration and packages, after which you can simply do the usual opkg install without drama.

4 Likes

Oh, I see, thanks for explaining! Do I understand correctly then that I shouldn’t attempt installing any kmods on a snapshot release? Or I only shouldn’t force it, but if I try regularly installing it and this works, it should be fine?

And what do you mean by full upgrade? My router model is only supported in the snapshot release, unfortunately.

1 Like

Your second statement would be most accurate. I typically make a new Snapshot build every 1-2 months. Quite often adding a missed or new package can still be installed without issue even then. The rule of thumb though would be to get what you want early after flashing.

Take a Backup of your installed packages so you can easily build out when you update to a newer Snapshot.

2 Likes

I see! That’s what @efahl was referring to as the “squishy” period of time after the install then, right? Since I just installed a new snapshot yesterday, I’ll attempt an install of batman then and see if I get lucky!

Oh ok, thanks! I think I read about how to do that somewhere. Thankfully the only packages I needed to add so far were only luci and wpad-openssl, so even if I didn’t back those up, the resulting effort would be negligible. Just got to make sure I don’t forget to back up my config!

2 Likes

Affirmative. If opkg update && opkg install kmod-blarg (or any package) works without issue, you're fine because opkg found the right one. If you have to resort to the --force... options, then DANGER AHEAD, so best to just upgrade to a new snapshot.

For easy "full upgrades" (i.e., full upgrade of firmware and keep your config), see https://openwrt.org/docs/guide-user/installation/attended.sysupgrade where you'll find a couple of tools that do all the work for you. I prefer CLI, so I use auc described halfway down that page.

If you cannot use auc or LuCI Attended Sysupgrade to build a new image with all your user-installed packages, then you use the https://firmware-selector.openwrt.org/ to do so. Also, add any new packages (click on Customize installed packages...) and add at least auc and your new kmod. If you need to figure out what packages you currently have installed, see this The OpenWrt Firmware Selector - #621 by efahl (any questions, ask them here, that firmware selector thread is getting to be a mess :joy:).

1 Like

Thank you very much! I just ran opkg install kmod-batman-adv and thankfully, it went through without any issues.

I'll still check those links and definitely refer back to them when/if I run into this or a similar situation again. Have a great weekend!

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.