I have just installed CentOS 6 64bit version, I'm trying to install a 32-bit application on a 64-bit machine and got this error:
/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
How do I resolve this?
ベストアンサー1
You're on a 64-bit system, and don't have 32-bit library support installed.
To install (baseline) support for 32-bit executables
(if you don't use sudo in your setup read note below)
Most desktop Linux systems in the Fedora/Red Hat family:
pkcon install glibc.i686
Possibly some desktop Debian/Ubuntu systems?:
pkcon install ia32-libs
Fedora or newer Red Hat, CentOS:
sudo dnf install glibc.i686
Older RHEL, CentOS:
sudo yum install glibc.i686
Even older RHEL, CentOS:
sudo yum install glibc.i386
Debian or Ubuntu:
sudo apt-get install ia32-libs
should grab you the (first, main) library you need.
Once you have that, you'll probably need support libs
Anyone needing to install glibc.i686
or glibc.i386
will probably run into other library dependencies, as well. To identify a package providing an arbitrary library, you can use
ldd /usr/bin/YOURAPPHERE
if you're not sure it's in /usr/bin
you can also fall back on
ldd $(which YOURAPPNAME)
The output will look like this:
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
ライブラリ名の時代指定子について
名前の前の「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.i686
または のみを使用できますsudo dnf install libpng-1.2.46-1.fc16.i686
。(漠然と次のような意味になります: ある時点で、libpng
パッケージのバージョン番号が巻き戻され、更新時に新しいバージョンが「新しい」と見なされるように「エポック」を増やす必要がありました。または、同様のことが 2 回発生しました。)
更新しましたさまざまなパッケージ マネージャー オプションをより詳細に説明および網羅する (2016 年 3 月)