This error happens when you install Node on an operating system that has a version of GLIBC that is lower than Node can support. For example, Node v18 supports GLIBC v2.7 or later. When you attempt to install Node v18.x on any Linux OS that has GLIBC v2.6 or lower, you will get such errors.
To see the version of GLIBC that your operating system has, execute the ldd command on the terminal:
Copy$ ldd --version
I can suggest three options to resolve this issue:
- Either install Node from source code. This will allow you to recompile
- Or install an older version of Node that your OS can support
- Or upgrade your Linux OS to a newer version.
Reference: Install Node from source code
Answer from Bruce Malaudzi on Stack OverflowThis error happens when you install Node on an operating system that has a version of GLIBC that is lower than Node can support. For example, Node v18 supports GLIBC v2.7 or later. When you attempt to install Node v18.x on any Linux OS that has GLIBC v2.6 or lower, you will get such errors.
To see the version of GLIBC that your operating system has, execute the ldd command on the terminal:
Copy$ ldd --version
I can suggest three options to resolve this issue:
- Either install Node from source code. This will allow you to recompile
- Or install an older version of Node that your OS can support
- Or upgrade your Linux OS to a newer version.
Reference: Install Node from source code
Observed the same error on the Linux machine of AWS.
This error will also be observed when we have installed Node JS and when we check the version. To resolve the issue we need to have greater than GLIBCv2.6. Amazon provides Linux boxes with GLIBC v2.6 and greater version than this as well. Before starting dev work use the below command to select a suitable machine
command used : ldd --version (on Amazon Linux machine) :

jffi9396993929588479283.so: /lib64/libc.so.6: version `GLIBC_2.27' not found
Sagemaker: OSError: /lib64/libm.so.6: version `GLIBC_2.27' not found
glibc - GLIBC_2.27 not found Ubuntu 16.04 - Stack Overflow
`/lib64/libm.so.6: version 'GLIBC_2.27' not found` in my self-hosted runners (Amazon Linux 2)
I want to install 4kvideodownloader application on my pc. I am using ubuntu 16.04 version.I can see the application symbol but it isn't opening. When i check that application it is showing to me `GLIBC_2.27' not found error:
/usr/lib/4kvideodownloader/4kvideodownloader-bin: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by /usr/lib/4kvideodownloader/libQt5WebEngineCore.so.5)/usr/lib/4kvideodownloader/4kvideodownloader-bin: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /usr/lib/4kvideodownloader/libQt5WebEngineCore.so.5)......
Can anyone helps to me?
You don't have a high enough version of libc6, that is causing the error.
From How to fix “/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found”? – Super User:
That means the program was compiled against glibc version 2.14, and it requires that version to run, but your system has an older version installed. You'll need to either recompile the program against the version of glibc that's on your system, or install a newer version of glibc (the "libc6" package in Debian).
So, you just need to upgrade your libc6 package. All versions of Ubuntu have at least version 2.15 because it's a faily important package (reference).
To upgrade it, use these commands in a terminal:
sudo apt-get update
sudo apt-get install libc6
For the benefit of those like me who are only experiencing this issue in one particular directory;
In my case there was a shared library file in my directory that was somehow throwing off the OS. I opened the folder in a file explorer, sorted by 'mime type' then deleted files of the type 'sharedlib' (or application/x-sharedlib) until my command (ls) worked again without that error. In my case the shared library file at fault was named 'libc.so.6'.
Another idea (this is why I post it as a new answer):
Some distros load the libraries from different places. For example, on Debians, the libc isn't in /usr/lib64, but in /lib/x86_64-linux-gnu . It is not a compatibility problem, because the apps should load the system libraries from the directories configured by the system for them. This app breaks this, it tries to load the libc from a hardwired location, thus it is the fault of the developers of this app.
Check where is your libc.so.6 (most easily you can see that by an
ldd /bin/bash
command), and simply create a soft link to that directory in your /usr/lib64 (the command: ln -sv /my/libc/directory /usr/lib64 ).
This package requires at least version 2.7 of the glibc, which is still quite old, but your distro seems much older.
If a chroot solution and also a system upgrade are unviable, there are 2 other ways:
You can upgrade only the glibc on your system. They are strongly backward compatible, so it probably won't break anything, but you still risk the ruining of your system into a state where you won't be able to fix it.
You can extract the glibc files from a newer glibc package into a local directory, and run only that process with that specific directory. You can do this with the LD_LIBRARY_PATH environment variable. Knowing that this is an R module, which is called not directly by you, but by the R, you will probably have to implement some trivial shellscript wrapper for the task.
I recently ran into this issue.
Build your project with CGO_ENABLED=0 may be enough to fix your issue:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o main main.go
If you are using sam, there is a --use-container flag, however this may not work for golang projects
To make sam build use a custom build command, i.e. run the go build command above, you can set the BuildMethod to makefile and create a Makefile with a target with the name build-<YourFunctionName>.
CopyHealthCheckFunction:
Type: AWS::Serverless::Function
Metadata:
BuildMethod: makefile
Properties:
CodeUri: .
Handler: healthcheck
FunctionName: !Sub "healthcheck_${Env}"
Runtime: go1.x
Architectures:
- x86_64
Events:
...
Then the Makefile would have:
build-HealthCheckFunction:
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o healthcheck lambda/healthcheck/healthcheck.go
mv healthcheck $(ARTIFACTS_DIR)
More details here on what I had to do to get this fixed in my project: https://www.gaunt.dev/blog/2022/glibc-error-with-aws-sam-and-go/
It probably means that the glibc version used to build the executable is different than the docker environment is using.
So, check the build environment ldd --version will reveal the glibc version.
Now, in your docker container (docker run -ti --entrypoint=/bin/bash dockerimage:tag) type the same ldd command. You'll probably see that the versions are different. So, update either the build environment to use the same version as the docker environment or vice-versa.
The best way to avoid this is to use the runtime environment to build your native executable: this way the glibc version will always match.