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.

Answer from Evandro Pomatti on Stack Overflow
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

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.

Discussions

linux - Redhat/CentOS - `GLIBC_2.18' not found - Stack Overflow
I was trying to run redis server (on a CentOS server) with specific module: redis-server --loadmodule ./redisql_v0.9.1_x86_64.so and getting error: Module ./redisql_v0.9.1_x86_64.so failed to loa... More on stackoverflow.com
🌐 stackoverflow.com
chromium - Webrtc on centos7 gives GLIBC_2.18 not found - Stack Overflow
I am trying to build webrtc on CentOS7. I was able to install all the webrtc required dependency I am facing an issue where gn(meta-build system that generate Ninja Files) complains that it cannot ... More on stackoverflow.com
🌐 stackoverflow.com
Release centos7 compatible binaries
When trying to run deno on Centos 7, it fails: [maxim@maxim deno] $ target/release/deno tests/worker.js target/release/deno: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by target... More on github.com
🌐 github.com
52
February 2, 2019
`GLIBC_2.18' not found error (Centos7 with GLIBC 2.17), terminal and extensions not working
Web Browser: Local OS: Remote OS: Remote Architecture: code-server --version: 3.4.0 Hi although on the release it says that this bug was fixed, that's not the case. On standard and updated Cent... More on github.com
🌐 github.com
15
May 28, 2020
🌐
GitHub
github.com › denoland › deno › issues › 1658
Release centos7 compatible binaries · Issue #1658 · denoland/deno
February 2, 2019 - When trying to run deno on Centos 7, it fails: [maxim@maxim deno] $ target/release/deno tests/worker.js target/release/deno: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by target...
Author   denoland
🌐
GitHub
github.com › coder › code-server › issues › 1742
`GLIBC_2.18' not found error (Centos7 with GLIBC 2.17), terminal and extensions not working · Issue #1742 · coder/code-server
May 28, 2020 - On standard and updated Centos7 (coming with glibc 2.17 only), code-server 3.4.0 wrongly says it needs 2.18. /home/usercode-server/code-server/bin/../lib/node: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /home/user/code-server/code-server/bin/../lib/libstdc++.so.6)
Author   coder
🌐
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?

Find elsewhere
🌐
GitHub
github.com › benfred › py-spy › issues › 16
Docker CentOS 7 version `GLIBC_2.18' not found (required by py-spy) · Issue #16 · benfred/py-spy
September 7, 2018 - Tried to run in Docker (CentOS 7 image) and got this: py-spy: /lib64/libc.so.6: version "GLIBC_2.18" not found (required by py-spy)
Author   benfred
🌐
GitHub
github.com › RedBeardLab › rediSQL › issues › 26
`GLIBC_2.18' not found in CentOS 7 · Issue #26 · RedBeardLab/rediSQL
February 24, 2018 - This error occurs when I load the rediSQL v0.3.1 module in CentOS 7. I try to find the issue on Google, but not working. If you have any idea, please help me. Thanks ! 3116:M 24 Feb 10:10:34.237 # Module modules/libredis_sql.so failed to load: /lib64/libc.so.6: version 'GLIBC_2.18' not found (required by modules/libredis_sql.so) 3116:M 24 Feb 10:10:34.237 # Can't load module from modules/libredis_sql.so: server aborting
Author   RedBeardLab
🌐
Mozilla Bugzilla
bugzilla.mozilla.org › show_bug.cgi
1646993 - Thunderbird Beta 78.0b2 doesn't start on CentOS 7 with error /lib64/libc.so.6: version `GLIBC_2.18' not found
Failed to start with messages: XPCOMGlueLoad error for file /opt/thunderbird-78.0b2/libxul.so: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /opt/thunderbird-78.0b2/libxul.so) Couldn't load XPCOM. ... Should have started. ... I can confirm this is happening on Centos 7 with Thunderbird78b3 prebuilds.
🌐
SinusBot Forums
forum.sinusbot.com › forums › support › installation
Solved - CentOS GLIBC_2.18 not found | SinusBot Forums
February 15, 2020 - Glibc version is usually pretty fixed throughout an OS release, so you might need to upgrade the entire OS. Click to expand... See here... ... The docs clearly state that we recommend running Debian/Ubuntu.
🌐
GitHub
github.com › meilisearch › meilisearch › issues › 1076
Can NOT run on CentOS 7: /lib64/libc.so.6: version `GLIBC_2.18' not found · Issue #1076 · meilisearch/meilisearch
November 12, 2020 - Describe the bug Still can not run the latest 0.16.0 on CentOS 7.8.2003. The error is: meilisearch: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /opt/meilisearch/bin/meilisearch) To Reproduce Download the latest 0.16.0, ...
Author   meilisearch
🌐
GitHub
github.com › unruhschuh › Ipe.AppImage › issues › 1
Does not run on CentOS 7 because it requires GLIBC_2.18 · Issue #1 · unruhschuh/Ipe.AppImage
January 31, 2016 - This is what happens if I try to run the AppImage on CentOS 7 CentOS-7.0-1406-x86_64-GnomeLive.iso: [me@host ~]$ /run/initramfs/isoscan/Applications/Ipe-7.2.2.AppImage /run/initramfs/isoscan/Applications/Ipe-7.2.2.AppImage: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by ./lib/libstdc++.so.6)
Author   unruhschuh
🌐
GitHub
github.com › pantsbuild › pants › issues › 5240
native-engine requires glibc 2.18, but Centos 7 only has 2.17 · Issue #5240 · pantsbuild/pants
December 22, 2017 - native-engine requires glibc 2.18, but Centos 7 only has 2.17#5240 · Copy link · Labels · bug · shanmugh · opened · on Dec 22, 2017 · Issue body actions · Similar to issue #4541 the release 1.4.0-dev23 also seems to have been built on a machine with GLIBC-2.18. Exception message: /lib64/libc.so.6: version GLIBC_2.18' not found (required by /tmp/tmpiUCwct/native_engine.so) ` Can you update or release a version of pants.pantsbuild-.tar.gz with a GLIBC-2.17 native-engine.so?
Author   pantsbuild
🌐
GitHub
github.com › istio › istio › issues › 9358
Build mix from source hit 'GLIBC_2.18' not found in envoy · Issue #9358 · istio/istio
October 16, 2018 - GLIBC includes in CentOS 7 is 2.17 Steps to reproduce the bug ... Installation Not installed. Just build. ... There is a way to fix it. ... 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 make install
Author   istio
🌐
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
🌐
Google Groups
groups.google.com › g › discuss-webrtc › c › y81rZPO3KG4
Building on Centos 7
I am also facing the same issue on Centos 7. Looks /webrtc/src/buildtools/linux64/gn is expecting `GLIBC_2.18' version.
🌐
LowEndTalk
lowendtalk.com › home › general
Help - Error - /lib64/libc.so.6: version `GLIBC_2.18' not found — LowEndTalk
December 14, 2021 - Direct cause: The glibc version which is your elf file dynamic linked is higher than current installed glibc version.
🌐
Factorio Forums
forums.factorio.com › board index › support › bug reports › not a bug
[16.1] `GLIBC_2.18' not found - Factorio Forums
December 13, 2017 - You need glibc version 2.18 or newer, which you apparently don't have. That is not a bug, but an outdated system. ... Yes, it is caused by factorio requiring a newer library, not a bug, but glibc 2.17 is the version supported by RHEL 7.4 (released in august) and all the related distros.