下面是 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 库。
解决方案
- 如果是缺少 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 ~]#
- 如果已经安装了 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 命令创建该文件即可。