【问题标题】:/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory/lib/ld-linux.so.2:错误的 ELF 解释器:没有这样的文件或目录
【发布时间】:2012-12-11 09:42:48
【问题描述】:

当我执行命令安装应用程序时,出现以下错误: /lib/ld-linux.so.2:错误的 ELF 解释器:没有这样的文件或目录

我不知道如何解决这个问题,为了找出解决方案,我在网上搜索了解决方案并找到了以下解决方案:

yum install glibc.i686 or yum install glibc.i386

但不幸的是,这根本没有奏效。它抛出以下错误:

Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
No package glibc.i686 available.
Error: Nothing to do

我再次尝试解决这个问题并从网上得到了一些解决方案;

Download glibc rpm packge for centos 6 and install them.

我下载了以下包:

glibc-2.12-1.80.el6.i686.rpm
glibc-common-2.12-1.80.el6.i686.rpm
glibc-devel-2.12-1.80.el6.i686.rpm
glibc-headers-2.12-1.80.el6.i686.rpm
glibc-static-2.12-1.80.el6.i686.rpm
glibc-utils-2.12-1.80.el6.i686.rpm

并尝试使用以下命令进行安装:

yum install glibc.i686
rpm -U glibc-2.12-1.80.el6.i686.rpm
rpm -ivh glibc-2.12-1.80.el6.i686.rpm

它们都不起作用。收到以下消息:

[root@demo tmp_glibc]# rpm -ivh glibc-2.12-1.80.el6.i686.rpm
    error: Failed dependencies:
    glibc-common = 2.12-1.80.el6 is needed by glibc-2.12-1.80.el6.i686
    libfreebl3.so is needed by glibc-2.12-1.80.el6.i686
    libfreebl3.so(NSSRAWHASH_3.12.3) is needed by glibc-2.12-1.80.el6.i686

为了解决依赖问题,尝试安装“glibc-common-2.12-1.80.el6.i686.rpm”,但运气不好再次运行并报错:

[root@demo tmp_glibc]# rpm -ivh glibc-common-2.12-1.80.el6.i686.rpm
error: Failed dependencies:
    glibc = 2.12-1.80.el6 is needed by glibc-common-2.12-1.80.el6.i686
    libc.so.6 is needed by glibc-common-2.12-1.80.el6.i686
    libc.so.6(GLIBC_2.0) is needed by glibc-common-2.12-1.80.el6.i686
    libc.so.6(GLIBC_2.1) is needed by glibc-common-2.12-1.80.el6.i686
    libc.so.6(GLIBC_2.1.1) is needed by glibc-common-2.12-1.80.el6.i686
    libc.so.6(GLIBC_2.1.3) is needed by glibc-common-2.12-1.80.el6.i686
    libc.so.6(GLIBC_2.10) is needed by glibc-common-2.12-1.80.el6.i686
    libc.so.6(GLIBC_2.2) is needed by glibc-common-2.12-1.80.el6.i686
    libc.so.6(GLIBC_2.3) is needed by glibc-common-2.12-1.80.el6.i686
    libcap.so.2 is needed by glibc-common-2.12-1.80.el6.i686
    libdl.so.2 is needed by glibc-common-2.12-1.80.el6.i686
    libdl.so.2(GLIBC_2.0) is needed by glibc-common-2.12-1.80.el6.i686
    libdl.so.2(GLIBC_2.1) is needed by glibc-common-2.12-1.80.el6.i686

谁能帮我弄清楚如何解决这个问题?

更多详情: 操作系统:centos 6.3 yum 安装包列表:

[root@demo tmp_glibc]# yum list installed glibc
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Installed Packages
glibc.x86_64   

【问题讨论】:

  • 在这些部分 (Debian) 周围,我们只是在引用存在的文件时遇到神秘的“没有这样的文件或目录”错误,而在错误消息中没有提及 ELF 解释器。
  • 这个问题更适合Unix & Linux,更多的是关于系统配置而不是软件开发。
  • On Debian/Ubuntu 18.04: sudo dpkg --add-architecture i386 && sudo apt update && sudo apt install libc6:i386

标签: glibc yum


【解决方案1】:
yum install glibc.i686

安装这个。

【讨论】:

  • 我不确定这些是否通常链接,但我还必须运行命令:yum install libstdc++.i686 来完全解决我缺少的依赖项。
【解决方案2】:

您没有提及您尝试运行产生错误消息的命令是什么。但是,底线问题是您试图在 64 位 (x86_64) 系统上运行和/或安装 32 位 (i686) 软件包,这不是一个好主意。例如,如果您尝试在 64 位系统上运行 32 位版本的 Perl,结果将类似于

perl: /lib/ld-linux.so.2: 错误的 ELF 解释器:没有这样的文件或目录

如果你仍然想使用 rpm 命令在你的系统上安装 32 位版本的 glibc 和 glibc-common,那么你需要知道你必须同时安装这两个包并且作为一个单独的包命令,因为它们是彼此的依赖关系。在您的情况下运行的命令是:

rpm -Uvh glibc-2.12-1.80.el6.i686.rpm glibc-common-2.12-1.80.el6.i686.rpm

【讨论】:

    【解决方案3】:
    Missing prerequisites. IBM has the solution below:
    
    yum install gtk2.i686
    yum install libXtst.i686
    
    If you received the the missing libstdc++ message above, 
    install the libstdc++ library: 
    yum install compat-libstdc++
    
    https://www-304.ibm.com/support/docview.wss?uid=swg21459143
    

    【讨论】:

      【解决方案4】:

      正如@borayeris 所说,

      yum 安装 glibc.i686

      但是如果找不到glibc.i686libstdc++包,试试-

      sudo yum 搜索 glibc
      sudo yum search libstd

      然后,

      sudo yum install {package}

      【讨论】:

      • 感谢您扩展我的答案。我不知道搜索。
      【解决方案5】:

      看着我 百胜安装 glibc.i686 应该工作。除非彼得不是根。 他安装了 64 位 glib,他正在安装一个 32 位软件包,该软件包需要 32 位 glib,即用于英特尔处理器的 glib.i686。

      【讨论】:

        【解决方案6】:

        我遇到了同样的问题,下面的命令可以解决:

        sudo yum install  glibc-common glibc  (mutual dependency)
        sudo yum install  glibc.i686  (the missing version)
        

        【讨论】:

          【解决方案7】:

          这些是我必须运行才能使其在 Fedora 22 上运行的安装:-

          glibc-2.21-7.fc22.i686

          alsa-lib-1.0.29-1.fc22.i686

          qt3-3.3.8b-64.fc22.i686

          libusb-1:0.1.5-5.fc22.i686

          【讨论】:

            猜你喜欢
            • 2018-09-16
            • 2016-04-06
            • 2014-11-14
            • 2021-10-09
            • 2017-08-15
            • 1970-01-01
            • 1970-01-01
            • 2012-03-07
            相关资源
            最近更新 更多