如何在Ubuntu 18.04中安装GLIBC 2.29或更高版本

26

我正在尝试在本地系统上安装 truDesk,但在运行 npm install -g yarn 命令时遇到以下错误:

node: /lib/x86_64-linux-gnu/libc.so.6: 版本 `GLIBC_2.28' 未找到(需要 node)

我的 Ubuntu 版本是 Ubuntu 18.04.6 LTS,当我检查最新版本时,显示软件已经是最新的。根据 glibc 错误提示,需要一个大于 18 的 Ubuntu 版本。请问如何更新版本?

这是我正在尝试下载的应用程序

2个回答

21

你可以尝试从官方源下载 glibc 并安装:

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

注意避免破坏您的操作系统环境:在使用时需要指定前缀并配置单独的路径。


请参考这个答案,了解如何使用备用GLIBC。


3
在执行 make receive 后出现了错误信息:Makeconfig:42: *** missing separator. Stop. 这表示在 Makeconfig 文件的第 42 行缺少分隔符。 - Amir
8
不要在源代码所在的同一文件夹中运行 ./configure 命令。请新建一个文件夹用于 ./configure 文件,使用命令 mkdir ../glibc-build 创建,并使用 cd ../glibc-build 命令进入该文件夹。然后,在保持在 glibc-build 文件夹中的情况下,从 源代码 运行 ../glibc-2.29/configure --prefix=/opt/glibc 命令。最后,执行 make && make install 命令。 - Alexey
2
@Alexey,在执行完这个步骤之后,看起来问题已经解决了,但是接下来,我尝试在我的项目中运行 yarn,却再次立即出现了错误信息:node: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.28' not found (required by node)。是否还有其他的步骤需要执行,例如 make && make install`? - rom
3
@rom 在Ubuntu 18.04中,针对Linux内核版本(5.4.0-132-generic),GLIBC版本2.28没有编译版本。如果您从源代码编译GLIBC_2.28并将其放入系统库文件夹中,它会导致系统崩溃并出现“分段错误”,并在硬关机后停止启动... 解决方案:升级您的操作系统或编译更高版本的内核,然后编译所有所需的库。 - Alexey
5
这个答案缺少如何使用新编译的库与应用程序配合使用的说明。 - trolzen
make 命令对我来说太慢了... - Huantao

11

@Dolphin的回答不完整,因为它会产生make错误:Makeconfig:42: *** missing separator. Stop.

在我的情况下,我必须执行以下操作:

# 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

附言:如果你正在尝试运行ord,只需尝试从源代码构建即可,这比升级ubuntu或重新编译GLIBC简单得多。


显然我需要更新gmake才能运行../configure。我收到“这些关键程序缺失或过旧:make”的消息,不确定如何解决。有什么建议吗? - Jerry Fanelli
1
抱歉,即使重新启动和执行了 ldd -version 检查,也没有解决问题。 - enthusiasticgeek
@Alex 我遇到了这个错误:*** 这些关键程序缺失或版本过旧:make编译器,在Centos 7上。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接