CentOS 6 64ビットバージョンをインストールしました。64ビットマシンに32ビットアプリケーションをインストールしようとすると、次のエラーが発生します。
/lib/ld-linux.so.2:不正なELFインタープリター:そのようなファイルまたはディレクトリはありません
Linuxは初めてです。これを解決するにはどうすればよいですか?
CentOS 6 64ビットバージョンをインストールしました。64ビットマシンに32ビットアプリケーションをインストールしようとすると、次のエラーが発生します。
/lib/ld-linux.so.2:不正なELFインタープリター:そのようなファイルまたはディレクトリはありません
Linuxは初めてです。これを解決するにはどうすればよいですか?
64ビットシステムを使用していて、32ビットライブラリサポートがインストールされていません。
(セットアップでsudoを使用しない場合は、以下の注をお読みください)
Fedora / Red HatファミリーのほとんどのデスクトップLinuxシステム:
pkcon install glibc.i686
おそらくいくつかのデスクトップDebian/Ubuntuシステム?:
pkcon install ia32-libs
Fedora以降のRedHat、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を初めて使用する場合は、可能な限り、パッケージマネージャー以外のソースからのソフトウェアの使用を避けたいと思うでしょう...
タイプ
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.i686
またはsudo dnf install libpng-1.2.46-1.fc16.i686
。(漠然と次のようなことを意味します:ある時点で、libpng
パッケージのバージョン番号が逆方向にロールバックされ、更新中に新しいバージョンが「新しい」と見なされるように「エポック」をインクリメントする必要がありました。または同様のことが起こりました。2回。)
さまざまなパッケージマネージャーオプションを明確にし、より完全にカバーするように更新されました(2016年3月)
新しくインストールしたCentOS6.464ビットマシンで同じ問題が発生しました。単一のyumコマンドで、これに加えて同様の問題の99%が修正されます。
yumgroupinstall「互換性ライブラリ」
これに「sudo」というプレフィックスを付けるか、rootとして実行します。どちらか最適な方法です。
一般に、このようなエラーが発生した場合は、
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
試す
$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
これが解決することを願っています。
代わりに、OpenJDK 32ビット(.i686
)をインストールすることもできます。私のテストによると、インストールされ、問題なく動作します。
sudo yum install java-1.8.0-openjdk.i686
ノート:
java-1.8.0-openjdkパッケージには、Javaランタイム環境のみが含まれています。Javaプログラムを開発する場合は、java-1.8.0-openjdk-develパッケージをインストールしてください。
詳細については、こちらをご覧ください。
BRPocockにコメントを追加したかったのですが、十分な特権がありません。
したがって、私の貢献は、IBMのIntegrationBusバンドルからIBMIntegrationToolkitをインストールしようとするすべての人に向けられました。
/ Integration_Toolkit / IM_Linuxフォルダー(実行するファイルは「install」)から「InstallationManager」コマンドを実行しようとすると、この投稿に示されているエラーが発生します。
この問題を修正するための詳細な手順は、次のIBMのWebページにあります 。https ://www-304.ibm.com/support/docview.wss?uid = swg21459143
これがインストールしようとしている人に役立つことを願っています。
sudo yum install fontconfig freetype libfreetype.so.6 libfontconfig.so.1libstdc++。so.6
Debianの場合、システムに少なくとも1つのコンパイラが必要です(DebianStretchおよびJessie32ビットライブラリによる)。
apt-get install -y gcc-multilib
debian:jessieに基づいてdockerコンテナで32ビットの実行可能ファイルを実行するためにインストールしました。
私の場合、コマンドを使用して問題を解決しましたyum install redhat-lsb