CentOS 64ビットの不良ELFインタープリター


183

CentOS 6 64ビットバージョンをインストールしました。64ビットマシンに32ビットアプリケーションをインストールしようとすると、次のエラーが発生します。

/lib/ld-linux.so.2:不適切なELFインタープリター:そのようなファイルまたはディレクトリはありません

Linuxは初めてです。どうすれば解決できますか?

回答:


355

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.i686またはglibc.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

この例では、パッケージの名前があるlibSM、パッケージの32ビットバージョンの名前ですlibSM.i686

次に、パッケージをインストールしpkconて、GUIで、または必要sudo 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

ライブラリ名のエポック指定子について

名前の前の「エポック」指定子は、基になる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パッケージのバージョン番号がロールバックされ、更新中に新しいバージョンが「新しい」と見なされるようにするために「エポック」をインクリメントする必要がありました。または同様のことが発生しました。2回。)


さまざまなパッケージマネージャーオプションをより明確に説明するために更新(2016年3月)


インストールされたivは今libpam.so.0を取得しています:共有オブジェクトファイルを開けません
c11ada

7
アプリに必要なライブラリがリストされていない場合は、自分で探してインストールする必要があります。運が良ければ、yumから利用できます。ライブラリを一覧表示するには、「ldd(バイナリ)」を使用できます。リストされている各ライブラリについて、「/ lib / ld-linux.so.2(0x4f8d9000)」または「libc.so.6 => /lib/libc.so.6(0x4f8fa000)」のような読み出しは行われません"、試してみてください:sudo yumは* / lib / libWHATEVER.soを提供し、パッケージ名を検索します。次に、sudo yum install PACKAGE.i686をインストールします。(システムにデフォルトでインストールされるx86_64ではなく、i386またはi686を取得するようにしています)
BRPocock

この答えは、64ビットシステムに移行する必要がある32ビットソフトウェアがある場合の天の恵みです。
froggythefrog 2013年

これはOracleのjre 1.7をFedora 20にインストールするのに非常に役立ちました。glibc.i686に加えて、libgcc.i686をインストールする必要がありました。
ジョンシュミット2014

17

新しくインストールしたCentOS 6.4 64ビットマシンで同じ問題が発生しました。単一のyumコマンドでこれに加え、99%の同様の問題が修正されます。

yum groupinstall "互換性ライブラリ"

この接頭辞に「sudo」を付けるか、rootとして実行します。


14

一般に、このようなエラーが発生した場合は、

yum provides ld-linux.so.2

次に、次のようなものが表示されます。

glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo        : fedora
Matched from:
Provides    : ld-linux.so.2

次に、BRPocockが書いたように次のコマンドを実行します(ロジックが何であるか疑問に思っている場合に備えて)。

yum install glibc.i686

3

試す

$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6

これが晴れることを願っています。


0

BRPocockにコメントを追加したかっただけですが、十分な権限がありません。

したがって、私の貢献は、IBMのIntegration BusバンドルからIBM Integration Toolkitをインストールしようとするすべての人のためでした。

フォルダー/ Integration_Toolkit / IM_Linux(実行するファイルは「install」)から「Installation Manager」コマンドを実行しようとすると、この投稿に示されているエラーが発生します。

このIBMのWebページにあるこの問題を修正するための詳細な手順:https : //www-304.ibm.com/support/docview.wss?uid=swg21459143

これがそれをインストールしようとしている人にとって役立つことを願っています。


0

sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc ++。so.6



0

.i686代わりに、OpenJDK 32ビット()をインストールすることもできます。私のテストによると、それはインストールされ、問題なく動作します。

sudo yum install java-1.8.0-openjdk.i686

注意:

java-1.8.0-のOpenJDKパッケージには含まれていただJavaランタイム環境を。Javaプログラムを開発する場合は、java-1.8.0-openjdk-develパッケージをインストールしてください。

詳細はこちらをご覧ください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.