Snapd 2.68.4 (24505) can't find xdelta3 on CentOS 7

I’ve been using snap to manage certbot on my Centos 7 server. With the installation of snapd 2.68.4 (24505), my certs were not getting updated, and I started to get error messages like:

snapd: store_download.go:133: unable to use system snap provided xdelta3, running config command failed: fork/exec /var/lib/snapd/snap/snapd/current/snap/snapd/current/usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2: no such file or directory

Reverting to snapd 2.67.1 (23771) eliminates these error messages. Is this a bug in snapd 2.68.4 (24505)?

There appears to be a bunch of changes to the snapcraft.yaml and to the python scripts and patch files around here. They look like potential places to examine.

These modifications altered the build process concerning the dynamic linker and runtime environment setup. These changes likely introduced an incompatibility or incorrect path configuration specific to CentOS 7, leading to the failure in locating ld-linux-x86-64.so.2. This could be considered a bug in snapd 2.68.4 as built for CentOS 7.

Thanks for that insight. Guess I should turn off auto-refresh for the time being.

I spoke too soon: 2.67.1 produces the same error message if I wait long enough. I tried removing the whole snapd package and reinstalling version 2.63 from the Centos repository. But as soon as I install certbot, snap installs snapd version 2.68.4. Not sure how to get back to a working version.

We are looking into this right now. The path looks wrong and it is probably a bug in snapd.

reinstalling version 2.63 from the Centos repository.

Can you paste the output of snap version and rpm -qi snapd ? This was fixed in 2.65, but new updates not being pushed to EPEL7 since it’s effectively closed and AFAIU CentOS 7 is EOL. Given this you should not be expecting new updates of snapd at this point.

In any case, the error message should not block your ability to refresh, it’s only informational that no usable xdelta3 was found in the system and so snapd will no not be able to consume delta updates when refreshing snaps.

[bob@leonardo ~]$ rpm -qi snapd
Name        : snapd
Version     : 2.63
Release     : 0.el7
Architecture: x86_64
Install Date: Fri 02 May 2025 02:27:35 PM EDT
Group       : Unspecified
Size        : 53584603
License     : GPLv3
Signature   : RSA/SHA256, Mon 27 May 2024 04:55:48 AM EDT, Key ID 6a2faea2352c64e5
Source RPM  : snapd-2.63-0.el7.src.rpm
Build Date  : Mon 27 May 2024 04:39:19 AM EDT
Build Host  : buildhw-x86-15.iad2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : https://github.com/snapcore/snapd
Bug URL     : https://bugz.fedoraproject.org/snapd
Summary     : A transactional software package manager
Description :
Snappy is a modern, cross-distribution, transactional package manager
designed for working with self-contained, immutable packages.
[bob@leonardo ~]$ snap version
snap    2.63-0.el7
snapd   2.63-0.el7
series  16
centos  7
kernel  3.10.0-1160.119.1.el7.tuxcare.els19.x86_64

I’ve been getting EOL support from Tuxcare, but they don’t seem to be updating snapd, which is run from /usr/libexec on Centos 7. Given this situation, is it possible to install the old snapd 2.63 snap and turn off refresh so that I won’t have problems with future changes to the snapd snap? I’m only using snap to keep certbot up to date.

You’re effectively running a distro package which is independent of snapd snap being refreshed. At some point, you may come across a snap which requires a specific snapd version that will not be available in EPEL7.

For preventing snap refreshes, see the documentation: Managing updates | Snapcraft documentation