CentOS 64 bit bad ELF interpreter Ask Question

CentOS 64 bit bad ELF interpreter Ask Question

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

この例ではパッケージの名前libSM32ビット版のパッケージの名前はlibSM.i686

pkconその後、 GUI を使用して必要なライブラリを取得し、パッケージをインストールできますsudo dnf/yum/apt-getpkcon 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 月)

おすすめ記事