`GLIBC_2.29' not found error on Debian buster 10
Running the websocket client nym-client_linux_x86_64 (version 0.9.0) fails on Debian buster 10. The default version of GLIBC is 2.28 on Debian 10 buster, while it seems the binary is compiled with 2.29
$ ldd --version
ldd (Debian GLIBC 2.28-10) 2.28
When running the client:
$ ./nym-client_linux_x86_64 init --id test
./nym-client_linux_x86_64: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by ./nym-client_linux_x86_64)
Hi @rachyandco where did this binary come from? Rust annoyingly has a dependence on the system's libc.
If you downloaded it, or compiled it on machine A and copied it to machine B, I'm not super surprised that it has libc problems.
My initial understanding was that that there is a requirement that the libc for the system running the binary is the same as or older than the libc version that the binary was compiled on. However I think I must be wrong about this, as my own system gives:
$ ldd --version
ldd (Ubuntu GLIBC 2.31-0ubuntu9.1) 2.31
There are various Rust working groups that are working to get libc out of the critical path.
Once we get to the point where we have truly "official" binary releases we will need to have a really good handle on this and make sure we compile for whatever systems are necessary/popular (we will need to make a call here it looks like).
Did you build that one yourself, out of interest?
this is the precompiled version available on github in the assets
This is making me nuts. Wanted to use precompiled client like for the first time and ran into the same obstacle. Funny how this is 2 years ago and I just went to sourceforge aor whatever and 2.29 is the latest bleeding edge beta :D
Well, gotta spin up an lxc of debian 10 on my ryzen 5950x back in Prague and compile my own packages there.
Pls include releases that were built on something else than Ubuntu, because well, it simply has to work on Debian 10. It's a binary.
My opinion...but I would assume it is really simple to add a line to your CI :) thx
Debian 10:
uname a
user at nymstr in ~/Downloads/nym/sdk on release/v1.1.4*
$ uname -a
Linux nymstr.com 4.19.0-21-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64 GNU/Linux
dpkg -l
ii libc6:amd64 2.28-10+deb10u1
$ LD_DEBUG=libs nym-client
30093:
30093: calling fini: nym-client [0]
30093:
30093:
30093: calling fini: /lib/x86_64-linux-gnu/libssl.so.1.1 [0]
30093:
30093:
30093: calling fini: /lib/x86_64-linux-gnu/libcrypto.so.1.1 [0]
30093:
30093:
30093: calling fini: /lib/x86_64-linux-gnu/libgcc_s.so.1 [0]
30093:
30093:
30093: calling fini: /lib/x86_64-linux-gnu/librt.so.1 [0]
30093:
30093:
30093: calling fini: /lib/x86_64-linux-gnu/libpthread.so.0 [0]
30093:
30093:
30093: calling fini: /lib/x86_64-linux-gnu/libm.so.6 [0]
30093:
30093:
30093: calling fini: /lib/x86_64-linux-gnu/libdl.so.2 [0]
Ubuntu 20.04 LTS (is this my junk??? :D )
└🤘-> LD_DEBUG=libs nym-client
3241666: find library=libc.so.6 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libc.so.6
3241666:
3241666: find library=libpthread.so.0 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libpthread.so.0
3241666:
3241666: find library=libdl.so.2 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libdl.so.2
3241666:
3241666: find library=libutil.so.1 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libutil.so.1
3241666:
3241666: find library=libm.so.6 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libm.so.6
3241666:
3241666: find library=libexpat.so.1 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libexpat.so.1
3241666:
3241666: find library=libz.so.1 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libz.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libpthread.so.0
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libc.so.6
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libz.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libexpat.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libm.so.6
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libutil.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libdl.so.2
3241666:
3241666:
3241666: initialize program: /usr/bin/python3
3241666:
3241666:
3241666: transferring control: /usr/bin/python3
3241666:
3241666:
3241666: calling init: /usr/lib/python3.8/lib-dynload/_json.cpython-38-x86_64-linux-gnu.so
3241666:
3241666: find library=libsqlite3.so.0 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libsqlite3.so.0
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libsqlite3.so.0
3241666:
3241666:
3241666: calling init: /usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so
3241666:
3241666: find library=libapt-pkg.so.6.0 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libapt-pkg.so.6.0
3241666:
3241666: find library=libstdc++.so.6 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libstdc++.so.6
3241666:
3241666: find library=libgcc_s.so.1 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libgcc_s.so.1
3241666:
3241666: find library=libresolv.so.2 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libresolv.so.2
3241666:
3241666: find library=libbz2.so.1.0 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libbz2.so.1.0
3241666:
3241666: find library=liblzma.so.5 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/liblzma.so.5
3241666:
3241666: find library=liblz4.so.1 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/liblz4.so.1
3241666:
3241666: find library=libzstd.so.1 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libzstd.so.1
3241666:
3241666: find library=libudev.so.1 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libudev.so.1
3241666:
3241666: find library=libsystemd.so.0 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libsystemd.so.0
3241666:
3241666: find library=libgcrypt.so.20 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libgcrypt.so.20
3241666:
3241666: find library=librt.so.1 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/librt.so.1
3241666:
3241666: find library=libgpg-error.so.0 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libgpg-error.so.0
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libgpg-error.so.0
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/librt.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libgcrypt.so.20
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/liblzma.so.5
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/liblz4.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libsystemd.so.0
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libudev.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libzstd.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libbz2.so.1.0
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libresolv.so.2
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libgcc_s.so.1
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libstdc++.so.6
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libapt-pkg.so.6.0
3241666:
3241666:
3241666: calling init: /usr/lib/python3/dist-packages/apt_pkg.cpython-38-x86_64-linux-gnu.so
3241666:
3241666:
3241666: calling init: /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so
3241666:
3241666:
3241666: calling init: /usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so
3241666:
3241666: find library=libnss_files.so.2 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libnss_files.so.2
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libnss_files.so.2
3241666:
3241666: find library=libnss_systemd.so.2 [0]; searching
3241666: search cache=/etc/ld.so.cache
3241666: trying file=/lib/x86_64-linux-gnu/libnss_systemd.so.2
3241666:
3241666:
3241666: calling init: /lib/x86_64-linux-gnu/libnss_systemd.so.2
3241666:
nym-client: command not found
3241666:
3241666: calling fini: /usr/bin/python3 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libutil.so.1 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libexpat.so.1 [0]
3241666:
3241666:
3241666: calling fini: /usr/lib/python3.8/lib-dynload/_json.cpython-38-x86_64-linux-gnu.so [0]
3241666:
3241666:
3241666: calling fini: /usr/lib/python3.8/lib-dynload/_sqlite3.cpython-38-x86_64-linux-gnu.so [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libsqlite3.so.0 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libdl.so.2 [0]
3241666:
3241666:
3241666: calling fini: /usr/lib/python3/dist-packages/apt_pkg.cpython-38-x86_64-linux-gnu.so [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libapt-pkg.so.6.0 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libz.so.1 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libstdc++.so.6 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libm.so.6 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libgcc_s.so.1 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libresolv.so.2 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libzstd.so.1 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libudev.so.1 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libsystemd.so.0 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/liblz4.so.1 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libgcrypt.so.20 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/librt.so.1 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libgpg-error.so.0 [0]
3241666:
3241666:
3241666: calling fini: /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libbz2.so.1.0 [0]
3241666:
3241666:
3241666: calling fini: /usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/liblzma.so.5 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libnss_files.so.2 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libnss_systemd.so.2 [0]
3241666:
3241666:
3241666: calling fini: /lib/x86_64-linux-gnu/libpthread.so.0 [0]