1. ホーム
  2. linux

[解決済み] CentOS 64 bit ELFインタプリタの不具合

2022-04-15 11:48:38

質問

CentOS 6 64bit版をインストールしたところ、64bitマシンに32bitアプリケーションをインストールしようとして、このようなエラーが発生しました。

/lib/ld-linux.so.2: 悪いELFインタプリタです。そのようなファイルやディレクトリはありません

私はリナックス初心者です。 どうすれば解決できますか?

解決方法を教えてください。

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 32bit 版のパッケージの名前は libSM.i686 .

そして、必要なライブラリを取得するために、パッケージをインストールします。 pkcon はGUIで、または sudo dnf/yum/apt-get を適当に...。例 pkcon install libSM.i686 . 必要であれば、バージョンを完全に指定することができます。例 sudo dnf install ibSM-1.2.0-2.fc15.i686 .

いくつかのライブラリは、その名前の前に「epoch」指定子を持っています; これは省略することができます (好奇心の強い人は、以下の注意事項を読んでください)。

注意事項

注意事項

ちなみに、あなたが直面している問題は、RPM (resp. 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 パッケージがロールバックされ、更新時に新しいバージョンが「新しい」とみなされるように "epoch" をインクリメントする必要がありました。あるいは、似たようなことが起こったのです。2回目)


更新情報 を明確にし、様々なパッケージマネージャーのオプションをより完全にカバーするため(2016年3月)。