centos安装jdk1.8时出现没有/lib/ld-linux.so.2:这个文件的原因分析

  • Post category:Linux

下面是 centos 安装 jdk1.8 时出现 没有 /lib/ld-linux.so.2 这个文件的原因分析的完整攻略,提供两条示例说明。

问题描述

在使用 yum 命令安装 jdk1.8 的过程中,执行如下命令时出现了错误:

[root@localhost ~]# yum install java-1.8.0-openjdk
...
Installing:
java-1.8.0-openjdk-headless 
...
Transaction Summary
...
Complete!
[root@localhost ~]# 

然后运行 java 命令时,会出现以下错误:

[root@localhost ~]# java -version
/usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
[root@localhost ~]# 

原因分析

出现该错误的原因可能是由于缺少 32 位的 glibc 库所致。jdk1.8 需要使用 32 位的 glibc 库,而有些 centos 版本是默认只安装了 64 位的 glibc 库。

解决方案

  1. 如果是缺少 32 位的 glibc 库,则使用以下命令安装:
yum install glibc.i686

安装完毕后,再次运行 java 命令就可以了。

[root@localhost ~]# java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
[root@localhost ~]# 
  1. 如果已经安装了 32 位的 glibc 库,但是还是出现该错误,则可能是缺少 ld-linux.so.2 链接文件。使用以下命令创建该链接文件即可:
ln -s /lib/ld-linux.so.2 /lib/ld-linux.so.2.old

创建完毕后,再次运行 java 命令就可以了。

[root@localhost ~]# java -version
openjdk version "1.8.0_302"
OpenJDK Runtime Environment (build 1.8.0_302-b08)
OpenJDK 64-Bit Server VM (build 25.302-b08, mixed mode)
[root@localhost ~]# 

总结

如果在 centos 安装 jdk1.8 时出现 没有 /lib/ld-linux.so.2 这个文件的错误,可能是由于缺少 32 位的 glibc 库。解决方案是使用 yum 命令安装 glibc.i686 库。如果已经安装了 32 位的 glibc 库,但是还是出现该错误,则可能是缺少 ld-linux.so.2 链接文件,使用 ln 命令创建该文件即可。