CentOS下make命令缺失GLIBC版本报错的解决方案咨询
解决make依赖高版本GLIBC的循环问题
问题描述
已安装make工具,但执行make或make -v时触发如下依赖报错:
[user@ip /home/my_id] $make make: /lib64/libc.so.6: version 'GLIBC_2.27' not found (required by make) make: /lib64/libc.so.6: version 'GLIBC_2.14' not found (required by make) make: /lib64/libc.so.6: version 'GLIBC_2.15' not found (required by make) make: /lib64/libc.so.6: version 'GLIBC_2.17' not found (required by make) $make -v make: /lib64/libc.so.6: version `GLIBC_2.27' not found (required by make) make: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by make) make: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by make) make: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by make)
尝试安装GLIBC 2.27时,编译步骤需要调用make,陷入依赖循环:
tar zxvf glibc-2.27.tar.gz tar zxvf glibc-ports-2.27.tar.gz mkdir build cd build ../glibc-2.27/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin make -j4 make install
需求:解决该报错,确认是否可在不依赖GLIBC 2.27等版本的情况下使用make(其他仅支持GLIBC 2.12的机器可正常运行make)。
解决方案
1. 更换适配GLIBC 2.12的make版本
你当前安装的make是基于高版本GLIBC编译的,无法在低版本环境运行。直接换适配GLIBC 2.12的版本即可:
- 复制现成二进制:从能正常运行make的GLIBC 2.12机器上,复制
/usr/bin/make到当前机器的/usr/local/bin,执行chmod +x /usr/local/bin/make,之后优先使用该路径下的make - 编译低版本make:选择make 4.1及以前的版本(这类版本对GLIBC要求更低),在支持GLIBC 2.12的机器上编译完成后,将二进制文件复制到当前机器使用
2. 用busybox make绕开循环(风险提示)
如果一定要安装高版本GLIBC,可尝试用busybox的make模块替代系统make:
- 先安装busybox,执行
busybox make完成GLIBC的编译步骤 - 注意:直接替换系统默认GLIBC极易导致系统崩溃,建议将GLIBC安装到非系统目录(修改configure的
--prefix为/usr/local/glibc-2.27),后续通过环境变量指定使用该版本
3. 临时指定GLIBC路径(仅验证)
若已有编译好的高版本GLIBC在非系统目录,可临时通过环境变量指定路径运行make:
export LD_LIBRARY_PATH=/path/to/glibc-2.27/lib:$LD_LIBRARY_PATH make
此为临时方案,无法解决系统级依赖问题,不建议长期使用。
内容的提问来源于stack exchange,提问作者YAUAY
相关产品推荐
相关产品推荐

