You need to build deno from source on a system that uses glibc_2.18. They have a guide to build it here: https://deno.land/manual@v1.29.3/references/contributing/building_from_source More info? https://github.com/denoland/deno/issues/1658 Answer from the_poope on reddit.com
🌐
LowEndTalk
lowendtalk.com › home › general
Help - Error - /lib64/libc.so.6: version `GLIBC_2.18' not found — LowEndTalk
December 14, 2021 - Three ways to resolve: 1. Install higher glibc version 2. Recompile with lower glibc library 3.
🌐
GitHub
github.com › sdkman › sdkman-cli › issues › 1227
Bug: /lib64/libc.so.6: version `GLIBC_2.18' (and others) not found · Issue #1227 · sdkman/sdkman-cli
August 8, 2023 - [root@oraclelinux79 ~]# sdk version /root/.sdkman/libexec/version: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by /root/.sdkman/libexec/version) /root/.sdkman/libexec/version: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /root/.sdkman/libexec/version) /root/.sdkman/libexec/version: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /root/.sdkman/libexec/version)
Author   sdkman
Discussions

How to solve GLIBC version incompatible issue?
You need to build deno from source on a system that uses glibc_2.18. They have a guide to build it here: https://deno.land/manual@v1.29.3/references/contributing/building_from_source More info? https://github.com/denoland/deno/issues/1658 More on reddit.com
🌐 r/HPC
5
5
January 17, 2023
v. 1.2.120 - /lib64/libc.so.6: version `GLIBC_2.18' not found
Describe the bug I've created a custom build using webpack and swc. When the build runs the jest script on Jenkins I get the following error. + npm run test > interconnect-monkey-frontend@0.... More on github.com
🌐 github.com
6
January 5, 2022
glibc - MeilieSearch Error On Shared Hosting (CentOS - Red Hat) (/lib64/libc.so.6: version `GLIBC_2.18' not found) - Stack Overflow
I'm unable to setup MeilieSearch on a Shared Hosting (I'm not root). Error I get: ./meilisearch: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ./meilisearch) I think the issue is w... More on stackoverflow.com
🌐 stackoverflow.com
version `GLIBC_2.18' not found
OS Version:CentOS Linux release 7.9.2009 (Core) Glibc Version:glibc-2.17-324.el7_9.x86_64 Pageage:kubectl-view-allocations_0.13.0-x86_64-unknown-linux-gnu.tar.gz kubectl-view-allocations: /lib64/li... More on github.com
🌐 github.com
10
May 22, 2021
🌐
Reddit
reddit.com › r/hpc › how to solve glibc version incompatible issue?
r/HPC on Reddit: How to solve GLIBC version incompatible issue?
January 17, 2023 -

The following error is throwed when I run deno on a Centos 7 hpc cluster,

/lib64/libc.so.6: version `GLIBC_2.18' not found

Most solutions I found on the internet is either use container or some complicated setup. I know that I could workaround this problem by building a singularity container. But I am just wondering is there any easier way to fix this problem, for example, by creating a environment module to override the default libc.so?

🌐
GitHub
github.com › swc-project › swc › issues › 3198
v. 1.2.120 - /lib64/libc.so.6: version `GLIBC_2.18' not found · Issue #3198 · swc-project/swc
January 5, 2022 - + npm run test > interconnect-monkey-frontend@0.1.0 test /jenkins > jest Error: Can not load bindings, file: /jenkins/node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node existed but error occurred while require it: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /jenkins/node_modules/@swc/core-linux-x64-gnu/swc.linux-x64-gnu.node) file: /jenkins/node_modules/@swc/core-linux-x64-musl/swc.linux-x64-musl.node existed but error occurred while require it: libc.musl-x86_64.so.1: cannot open shared object file: No such file or directory Installed packages: [core-linux-x64-gnu, c
Author   swc-project
🌐
Red Hat
access.redhat.com › solutions › 6965146
Service failing to start with error: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6) - Red Hat Customer Portal
dbus[123]: [system] Activating via systemd: service name='org.freedesktop.PolicyKit1' unit='xxxx.service' xxxx: /usr/lib/[...]: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6) systemd: xxxx.service: main process exited, code=exited, status=1/FAILURE systemd: Unit xxxx.service entered failed state.
Find elsewhere
🌐
GitHub
github.com › davidB › kubectl-view-allocations › issues › 135
version `GLIBC_2.18' not found · Issue #135 · davidB/kubectl-view-allocations
May 22, 2021 - OS Version:CentOS Linux release 7.9.2009 (Core) Glibc Version:glibc-2.17-324.el7_9.x86_64 Pageage:kubectl-view-allocations_0.13.0-x86_64-unknown-linux-gnu.tar.gz kubectl-view-allocations: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by kubectl-view-allocations)
Author   davidB
🌐
GitHub
github.com › parcel-bundler › parcel › issues › 5599
Error: /lib64/libc.so.6: version `GLIBC_2.18' not found in Red Hat Enterprise Linux 7.9 · Issue #5599 · parcel-bundler/parcel
January 6, 2021 - 🐛 bug report With Parcel1 everything works. After migrating to Parcel2 -- I'm getting the following error - running on Red Hat Enterprise Linux 7.9 From the looks of it - (running /lib64/libc.so.6 --version) this distro contains GNU C Li...
Author   parcel-bundler
Top answer
1 of 2
6

Current Deno release 1.0.0 (latest today) is not compatible with CentOS 7.

I tried on the latest distribution released on 27 April 2020:

$ cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)

This issue 7 GLIBC_2.18 not found suggests that there should be a way to solve this problem, but the thread seems to be abandoned for a year.

As of today Deno requires GLIBC_2.18, but unfortunately CentOS 7 is running 2.17, an old version of the gclib which is not enough:

$ ldd --version
ldd (GNU libc) 2.17

If you need to run Deno on CentOS you'll need to use CentOS 8. Tested it and it works.

From How to fix “/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found”:

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).

It will not happen for CentOS 7. From glibc_2.18 on Centos 7:

No. Never going to happen. We ship glibc 2.17 as part of CentOS 7 and that will never change. It's part of the basic RHEL standards that stuff like this does not change within a major version.

I wouldn't count on Deno — which is a new technology — to backport with old compilers. Consider upgrading your servers to CentOS 8.

2 of 2
1

For me, I have no way to upgrade the OS as it's managed by IT department. Seems there's a workaround. I found the link on the following thread does work.

https://github.com/denoland/deno/issues/1658#issuecomment-632986792

🌐
GitHub
github.com › BirolLab › tigmint › issues › 6
ImportError: /lib64/libc.so.6: version `GLIBC_2.18' not found · Issue #6 · BirolLab/tigmint
February 25, 2018 - Inconsistency detected by ld.so: get-dynamic-info.h: 134: elf_get_dynamic_info: Assertion `info[15] == ((void *)0)' failed! make[2]: *** [/usr/lib64/gconv/gconv-modules] Error 127 make[2]: Leaving directory `/data/programs/glibc-2.18/iconvdata' make[1]: *** [iconvdata/subdir_install] Error 2 make[1]: Leaving directory `/data/programs/glibc-2.18' make: *** [install] Error 2 · I would be very cautious on doing anything to the default glibc... And I notice that if · $strings /home/linuxbrew/.linuxbrew/lib/libc.so.6 | grep ^GLIBC_ GLIBC_2.2.5 GLIBC_2.2.6 GLIBC_2.3 GLIBC_2.3.2 GLIBC_2.3.3 GLIBC_2
Author   BirolLab
🌐
GitHub
github.com › dandavison › delta › issues › 306
🐛 /lib64/libc.so.6: version `GLIBC_2.18' not found (required by delta) · Issue #306 · dandavison/delta
August 31, 2020 - I get this error when running delta. delta: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by delta) This only happens when using the GLIBC version. When using musl, everything works as expected. I'm using an old version of r...
Author   dandavison
Top answer
1 of 3
23

Check it is actually needed

Firstly check the python application as it could be out of date and is probably misreading the glibc version. CentOS shows the base version as installed and is patched to keep up with changes and it could just be a case of fixing the version that is being looked for in the code as a quick fix, but if the application is being actively developed you need to let the developers know or fork it for yourself if you can.

An up to date glibc on CentOS 7 should be 2.17-196.el7_4.2

If it is needed, Containerise

If it's absolutely necessary to run this application, the official RHEL approach would be to containerize, but you would still need to provide a working glibc, which wouldn't be possible with stock CentOS 7.

As a last resort, install glibc in a nonstandard location

If this isn't viable, and as an absolute last resort, it is possible to install a newer version of glibc than 2.18 as that is 9 years old now and glibc has been updated for several vulnerabilities and I'm not sure off the top of my head if it will build with the version of make in CentOS 7, but any newer version should work as follows:

  • This can potentially affect the functionality of your computer so make sure you know what you are doing

You can build the version of glibc you require elsewhere on your server and add it to LD_LIBRARY_PATH for the application. Note this must only be done for the application only.

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxvf glibc-2.18.tar.gz
cd glibc-2.18
mkdir build
cd build
../configure --prefix=/opt/glibc-2.18
make -j4
sudo make install

Then to run a binary you need to use patchelf to update its interpreter

patchelf --set-interpreter /opt/glibc-2.18/lib/ld-linux-x86-64.so.2 program_you_are_running

And you need to enable it to find the new glibc library, either by

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/glibc-2.18/lib

Or you can use patchelf to update the binary's rpath (you can combine this with the previous pathelf command)

patchelf --set-rpath /opt/glibc-2.18/lib:/usr/lib64 program_you_are_running

If you change LD_LIBRARY_PATH don't export it for the whole system because all the binaries unmodified by patchelf will segfault.

/opt is the standard place to install third-party applications and libraries but you can use any path away from the system paths.

2 of 3
4

In the end,I did not have to upgrade GLIBC. The gdc-client tool I downloaded through R seemed to be for Ubuntu and not CentOS, though I did it on CentOS 7. I then downloaded the gdc-client for CentOS and it worked fine.

Top answer
1 of 6
22

So why am I getting GLIBC_2.14 error?

Because your program depends on a symbol with that version, and you are running it on a system which doesn't provide it.

Shouldn't it be 2.19 error?

No.

When a new symbol is introduced, it gets a version assigned to it. Usually that version is the not yet released glibc version, i.e. if the current released version is 2.13, the new symbol gets version 2.14 assigned to it.

That version stays with this symbol (unless a new and incompatible version of the same symbol is introduced later).

The x86_64 GLIBC-2.19 has the following versioned symbols:

$ objdump -T /lib/x86_64-linux-gnu/libc.so.6 | grep ' g ' | head
0000000000078110 g    DF .text  0000000000000124  GLIBC_2.2.5 putwchar
0000000000096a70 g    DF .text  0000000000000020  GLIBC_2.2.5 __strspn_c1
000000000010a2b0 g    DF .text  0000000000000010  GLIBC_2.4   __gethostname_chk
0000000000096a90 g    DF .text  000000000000001a  GLIBC_2.2.5 __strspn_c2
0000000000110570 g    DF .text  00000000000000a5  GLIBC_2.2.5 setrpcent
00000000000a7ba0 g    DF .text  000000000000000a  GLIBC_2.2.5 __wcstod_l
0000000000096ab0 g    DF .text  0000000000000022  GLIBC_2.2.5 __strspn_c3
00000000000fa950 g    DF .text  0000000000000021  GLIBC_2.3.2 epoll_create
000000000010a2c0 g    DF .text  0000000000000010  GLIBC_2.4   __getdomainname_chk
00000000000fab60 g    DF .text  0000000000000021  GLIBC_2.2.5 klogctl
....

That is, if I link a program that calls putwchar, I will need at minimum version 2.2.5, but if my program also calls epoll_create, then I will need a minimum version of 2.3.2.

Your program calls some symbol with version GLIBC_2.14, most likely this one:

0000000000091620 g   iD  .text  000000000000003d  GLIBC_2.14  memcpy

Your program is known to not call any of the symbols below (or you would have gotten a different required version):

$ objdump -T /lib/x86_64-linux-gnu/libc.so.6 | egrep 'GLIBC_2.1[5-9]'
000000000010ab30 g    DF .text  0000000000000014  GLIBC_2.16  __ppoll_chk
00000000001087d0  w   DF .text  000000000000003e  GLIBC_2.17  clock_getcpuclockid
000000000010aaf0 g    DF .text  0000000000000017  GLIBC_2.15  __fdelt_warn
000000000010aaf0 g    DF .text  0000000000000017  GLIBC_2.15  __fdelt_chk
000000000003c6b0 g    DF .text  00000000000000fc  GLIBC_2.18  __cxa_thread_atexit_impl
00000000000fb070 g    DF .text  0000000000000024  GLIBC_2.15  process_vm_writev
00000000000bd420 g    DF .text  00000000000001ba  GLIBC_2.15  scandirat
00000000000af970 g    DF .text  0000000000000019  GLIBC_2.16  c16rtomb
00000000001088f0  w   DF .text  0000000000000090  GLIBC_2.17  clock_nanosleep
00000000000af6e0 g    DF .text  0000000000000282  GLIBC_2.16  mbrtoc16
00000000000a3c70  w   DF .text  0000000000000230  GLIBC_2.16  mbrtoc32
0000000000000000 g    DO *ABS*  0000000000000000  GLIBC_2.15  GLIBC_2.15
0000000000000000 g    DO *ABS*  0000000000000000  GLIBC_2.16  GLIBC_2.16
0000000000000000 g    DO *ABS*  0000000000000000  GLIBC_2.17  GLIBC_2.17
0000000000000000 g    DO *ABS*  0000000000000000  GLIBC_2.18  GLIBC_2.18
00000000000b9f40 g    DF .text  0000000000000042  GLIBC_2.16  timespec_get
0000000000083120  w   DF .text  0000000000000009  GLIBC_2.16  aligned_alloc
0000000000108810  w   DF .text  0000000000000025  GLIBC_2.17  clock_getres
0000000000108880  w   DF .text  0000000000000064  GLIBC_2.17  clock_settime
00000000000f8240  w   DF .text  0000000000000068  GLIBC_2.16  getauxval
00000000000e44f0 g    DF .text  0000000000000015  GLIBC_2.15  posix_spawn
0000000000108840  w   DF .text  000000000000003b  GLIBC_2.17  clock_gettime
00000000000a3ea0  w   DF .text  00000000000001ea  GLIBC_2.16  c32rtomb
000000000003c0b0  w   DF .text  000000000000001b  GLIBC_2.17  secure_getenv
000000000010ab10 g    DF .text  0000000000000014  GLIBC_2.16  __poll_chk
00000000000f8240 g    DF .text  0000000000000068  GLIBC_2.16  __getauxval
00000000000fb040 g    DF .text  0000000000000024  GLIBC_2.15  process_vm_readv
00000000000bd420  w   DF .text  00000000000001ba  GLIBC_2.15  scandirat64
00000000000e4510 g    DF .text  0000000000000015  GLIBC_2.15  posix_spawnp
2 of 6
3

What

ldd --verbose simulator

gives ?

I'd say GLIBC2.14 is the minimum required.

What is the version of libc.so on your system ?

🌐
GitHub
github.com › anomalyco › opencode › issues › 12937
opencode fails to run due to missing GLIBC versions · Issue #12937 · anomalyco/opencode
February 10, 2026 - Description When running opencode, it fails with the following error messages indicating missing GLIBC versions: 1 opencode: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by openco...
Author   anomalyco
🌐
GitHub
github.com › oven-sh › bun › issues › 5534
version `GLIBC_2.18' not found · Issue #5534 · oven-sh/bun
September 16, 2023 - bun: /usr/lib64/libc.so.6: version GLIBC_2.18' not found (required by bun) bun: /usr/lib64/libc.so.6: version GLIBC_2.25' not found (required by bun)
Author   oven-sh