What the title says. I'm trying to run a program, and even after installing its dependencies (sdl2, freetype, harfbuzz, onnxruntime, darling) and restarting the system (I know most of the time it doesn't need, but just in case) it keeps saying the same issue.
/lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found
What I've seen after searching for a bit is that either I have to build the program myself, or use a different version of linux. I MIGHT be ok, since I was planning to make a new installation when Kubuntu 24.04 releases eventually (I mean, it WILL release, right???) but I really want to give this a try beforehand.
Running a Kubuntu 22.04 distro that updated itself from a 20.04 one. Hardware is full amd and decent enough? I don't think it affects this issue in specific.
Basically im trying to run a game but it requires at least glibc 2.38 but it seems debian only offers 2.36 at the moment. Any way i can get a newer vesion of it?
EDIT: ended up just downloading the windows version of the game and running it with wine, im an idiot and thought i was having a problem with the sound when i first downloaded, that's why i tried the linux binary, but when i ran it with wine again i found out that the game came muted by default and that i had to press + to get the volume up
I’m currently using GLIBC 2.35 on Ubuntu 22.04, and I want to update it (for gaming purposes).
I’m also aware that updating it isn’t as simple as typing:
“sudo apt update GLIBC yada yada”
or whatever, so I’m not entirely sure how to update it properly without bricking my install.
Any ideas on what to do?
You can use following commands to bring in newer version of glibc in ubuntu 20.04, but note that as it is a system package, upgrading it may impact your system.
apt-get install gawk bison gcc make wget tar -y
wget -c https://ftp.gnu.org/gnu/glibc/glibc-2.35.tar.gz
tar -zxvf glibc-2.35.tar.gz && cd glibc-2.35
mkdir glibc-build && cd glibc-build
../configure --prefix=/opt/glibc
make
make install
Introducing glibc will break your core binaries. Updated core binaries require a newer kernel which breaks hardware drivers (like NVIDIA) that need your old kernel. This "vicious cycle" makes it impossible to use new glibc w/o breaking your system.
The only solution is to compile the unsupported drivers somehow for the new kernel. So far this is not possible.
If you try using GLIBC without updating its dependencies, you will get complaints of a version mismatch on its dependencies which go all the way down to the kernel, which is why it is not possible.
Your options are limited and it is not possible unless you use a virtual machine. But likely VM is not what you want because VMs do not have the advantage of talking to your hardware directly. They have some VM extensions for making that better but they only cover CPU and RAM, not the video/sound card, that is all emulated.
Summary
If you want to run something that needs newer hardware, there is just no way around that:
You cant use unsupported hardware on newer kernel, and therefore linker, and then GLIBC.
You can't use unsupported GLIBC on older kernel which relies on the new kernel features. If you try to do it by force (point to new compiled version of the new binaries) you will get an error that the linker/kernel versions are incorrect.
The only solution to this is if there was a way to update your hardware drivers. If that isn't your problem, then UPGRADE UBUNTU to the latest version. If that IS your problem, then you are out of luck.
Companies like NVIDIA and AMD drop video support after a few years and leave you up a creek with no paddle, stranded on an old OS unless you buy yet another video card (even if your current one is fast and does just fine, they do NOT care).
Sandboxing in flatpak still needs those libraries to be able to link with your kernel. Sandboxing only fixes dependencies that are above the base system level. HOWEVER, if any of those libraries were built against a binaries that recursively rely on newer core libraries, you will still be stuck and it will still not work, below is an example:
/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found
(required by /tmp/.mount_my2newapp.a9fz3/usr/bin/../../usr/lib/liblzma.so.5)
As you can see here, even though the appimage/flatpak/snap was sandboxed, it still needed these new libraries further down the dependency chain.
I ran sudo apt-get install libc6 but it says the newest version is installed already, that being 2.31. I need 2.35 for ALVR
I'm on Zorin OS for this
Hey folks,
I recently needed glibc 2.35 for building some models, so I added the jammy package to my /etc/apt/sources.list and installed the required version. However, I'm now facing unmet dependencies while trying to install clang due to the updated glibc version.
Could someone guide me on how to revert back to glibc 2.31 without disrupting my current setup?
Thanks in advance!
Currently I am trying to run the latest build of Friday Night Funkin on Linux.
It throws the aforementioned error when I try to run it.
Some help? Please?
I have a Debian 12 install running on a laptop which has been great. I use BackInTime to take nightly backups of my OS in the event that the system becomes unstable or will not boot. Well that happened. I had a plasma issue occur and the machine failed to boot. So I restored one of my daily backups. Beautiful. Everything looks fine again. Until I try to upgrade with APT. The update looks fine on the surface at first. The apt update command finds a few packages that need to be updated. Nothing that appears to be related to GLIBC though.
Chrome is one of the updates as well as girl 1.2. If I perform the update, it processes as expected. However, if I run apt update or any other command after that, I receive the "GLIBC_2.38 not found error from anything I try to launch. Can anyone explain to me why this is happening?
Here are images of the apt update that processes successfully prior to the issue occurring.
And before anyone asks, no im not using Kali. Its vanilla Debian 12. That's just the user.Also a shot of APT sources. they are the standard sources.
Checking the gLibc version prior to the update shows that 2.36 is the current version
You can try to download glibc from the official source and install it:
wget -c https://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz
tar -zxvf glibc-2.29.tar.gz
mkdir glibc-2.29/build
cd glibc-2.29/build
../configure --prefix=/opt/glibc
make
make install
Pay attention to avoid breaking your OS environment: you need to specify the prefix and configure the separate path when you are using it.
See this answer on how to use the alternate GLIBC.
Answer from @Dolphin isn't complete as it produces error from make: Makeconfig:42: *** missing separator. Stop.
In my case, to I had to do following:
# Check GLIBC_2.29
ldd --version | head -n1
# Build GLIBC_2.29 from sources
sudo apt-get install gawk bison -y
wget -c https://ftp.gnu.org/gnu/glibc/glibc-2.34.tar.gz
tar -zxvf glibc-2.34.tar.gz && cd glibc-2.34
mkdir glibc-build && cd glibc-build
../configure --prefix=/opt/glibc-2.34
make
sudo make install
P.S. If you are trying to run ord just try building from sources, it's much simpler than upgrading ubuntu or recompiling GLIBC
Hi, I have recently dualbooted my laptop so im still very much a linux noob and I installed VSCode with the ubuntu software app. When I try to open VSCode nothing happens, and if I use the code command I get the following error:
ERROR: ld.so: object '/usr/local/lib/x86_64-linux-gnu/libinput-config.so' from /etc/ld.so.preload cannot be preloaded (failed to map segment from shared object): ignored.
/snap/code/136/usr/share/code/bin/../code: /snap/core20/current/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /usr/local/lib/x86_64-linux-gnu/libinput-config.so)
Can someone please help me? I googled it but I can't find a solution. Thanks in advance
Edit:
Fixed it by using sudo vim on the /etc/ld.so.preload file and deleting the line /usr/local/lib/x86_64-linux-gnu/libinput-config.so.