linux - CentOS 64 位坏 ELF 解释器

我刚刚安装了 CentOS 6 64 位版本,我正在尝试在 64 位机器上安装 32 位应用程序并收到此错误:

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

我是 Linux 新手。我该如何解决这个问题?

最佳答案

您使用的是 64 位系统,并且没有安装 32 位库支持。

安装(基线)对 32 位可执行文件的支持

(如果您在设置中不使用 sudo,请阅读下面的说明)

Fedora/Red Hat 系列中的大多数桌面 Linux 系统:

 pkcon install glibc.i686

可能是一些桌面 Debian/Ubuntu 系统?:

pkcon install ia32-libs

Fedora 或更新的 Red Hat、CentOS:

 sudo dnf install glibc.i686

旧版 RHEL、CentOS:

   sudo yum install glibc.i686

甚至更老的 RHEL、CentOS:

  sudo yum install glibc.i386

Debian 或 Ubuntu:

   sudo apt-get install ia32-libs

应该捕获你需要的(第一个,主要的)库。

一旦你有了它,你可能需要支持库

任何需要安装 glibc.i686glibc.i386 的人也可能会遇到其他库依赖项。要识别提供任意库的包,您可以使用

 ldd /usr/bin/YOURAPPHERE

如果您不确定它是否在 /usr/bin 中,您也可以使用

 ldd $(which YOURAPPNAME)

输出将如下所示:

    linux-gate.so.1 =>  (0xf7760000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
    libSM.so.6 => not found

检查缺少的库(例如上述输出中的 libSM.so.6),并为每个库找到提供它的包。

用于查找每个发行系列的包的命令

Fedora/Red Hat Enterprise/CentOS:

 dnf provides /usr/lib/libSM.so.6

或者,在较旧的 RHEL/CentOS 上:

 yum provides /usr/lib/libSM.so.6

或者,在 Debian/Ubuntu 上:

首先,安装并下载apt-file

的数据库
 sudo apt-get install apt-file && apt-file update

然后搜索

 apt-file find libSM.so.6

注意(通常)情况下的前缀路径/usr/lib;由于历史原因,很少有一些库仍然位于 /lib 下……在典型的 64 位系统上,32 位库位于 /usr/lib 中,而 64 位库位于在 /usr/lib64.

(Debian/Ubuntu 组织多架构库的方式不同。)

为缺少的库安装包

上面应该给你一个包名,例如:

libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo        : fedora
Matched from:
Filename    : /usr/lib/libSM.so.6

在本例中,包的名称是 libSM32 位版本的包的名称是 libSM.i686

然后,您可以在 GUI 中使用 pkconsudo dnf/yum/apt-get 安装软件包以获取必要的库...。例如 pkcon install libSM.i686。如有必要,您可以完全指定版本。例如 sudo dnf install ibSM-1.2.0-2.fc15.i686.

有些图书馆的名字前会有一个“时代”标志;这可以省略(好奇的可以阅读下面的注释)。

注意事项

警告

顺便说一句,您面临的问题可能意味着您的 RPM(或 DPkg/DSelect)数据库已损坏,或者您尝试运行的应用程序未通过包管理器安装。如果您是 Linux 新手,您可能希望尽可能避免使用包管理器以外的其他来源的软件...

如果您在设置中不使用“sudo”

类型

su -c

每次看到sudo,例如,

su -c dnf install glibc.i686

关于库名称中的纪元指示符

名称前的“epoch”指示符是底层 RPM 库处理版本号的方式的产物;例如

2:libpng-1.2.46-1.fc16.i686 : A library of functions for manipulating PNG image format files
Repo        : fedora
Matched from:
Filename    : /usr/lib/libpng.so.3

这里,2:可以省略;只需 pkcon install libpng.i686sudo dnf install libpng-1.2.46-1.fc16.i686。 (它模糊地暗示着类似的东西:在某些时候,libpng 包的版本号向后滚动,并且“epoch”必须增加以确保更新的版本会被认为是“更新的”更新。或者类似的事情发生了。两次。)


更新以更全面地阐明和涵盖各种包管理器选项(2016 年 3 月)

https://stackoverflow.com/questions/8328250/

相关文章:

python - socket.error : [Errno 48] Address already

linux - 在fish shell中定义别名

python - 在 Windows 上设置 Python simpleHTTPserver

linux - 如何对目录中的所有文件执行grep操作?

python - 将 UTC 日期时间字符串转换为本地日期时间

python - _csv.Error : field larger than field limi

linux - crontab 星期几语法

python - 将带参数的函数传递给Python中的另一个函数?

awk - 在 awk 中使用多个分隔符

linux - Windows 容器可以托管在 Linux 上吗?