You are not logged in.
I'm handling with GLIBC problems when installing a .deb package with debstap
Installation works well, but the binary doesn't work.
The binary links to a folder it just installed under /opt/apps which contains the true working binary file 'xxx.xxx'(e.g.) and relevant libs
In my shell, ruuning 'xxx.xxx' returns error ./libm.so.6: version 'GLIBC_2.29' not found (required by /usr/lib/libcairo.so.2)
Well, I have done these:
$ ldd --version
ldd (GNU libc) 2.33
$pacman -Q glibc
glibc 2.33-5
$ldd xxx.xxx
linux-vdso.so.1
libdl.so.2 => /usr/lib/libdl.so.2
libpthread.so.0 => /usr/lib/libpthread.so.0
libstdc++.so.6 => ./libstdc++.so.6
libm.so.6.so.1 => ./libm.so.6
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
libc.so.6 => /usr/lib/libc.so.6
/lib64/ld-linux-x86-64.so.2 =>> /usr/lib64/ld-linux-x86-64.so.2
So I checked my system libc.so.6 and installed libm.so by
$ strings /usr/lib.libc.so.6 | grep GLIBC_2.29
GLIBC_2.29
GLIBC_2.29
$ strings ./libm.so.6 | grep GLIBC
GLIBC_2.2.5
GLIBC_2.4
GLIBC_2.15
GLIBC_2.18
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_PRIVATE
So it's puzzling for me, as I only encoutered the case I compiled my code with higher version of glibc, but it doesn't work on the server who always uses lower version ones.
Is the problem of glibc 2.33?
Last edited by TimeOrange (2021-10-01 15:53:30)
Offline
The problem is that you're using (and checking) an old version of libm that's included with the package. You need to get rid of it.
Offline
The problem is that you're using (and checking) an old version of libm that's included with the package. You need to get rid of it.
Much thanks, I replaced it with my system libm. Now It works.
Offline
You'll probably end up with the same issue in the future doing it that way. Better to just delete the version in the app dir and let it use the one in /usr/lib/
Offline
You'll probably end up with the same issue in the future doing it that way. Better to just delete the version in the app dir and let it use the one in /usr/lib/
My current method is change ./libm.so.6 => ./libm.so.6.bak. Then make a ln -s from my /usr/lib/libm/so.6
Offline