32ビットライブラリを64ビットシステムにインストールすることは可能ですか?


8

32ビットの共有ライブラリをインストールしましたが、pogoplugをインストールしようとすると、まだこのエラーが発生します。

./pogoplugfs: error while loading shared libraries: libfuse.so.2: wrong ELF class: ELFCLASS64

32ビットライブラリからプログラムをロードするために他に必要なことはありますか?

同様の質問が今年初めに行われましたが、回答はありませんでした。

回答:


9

一部のライブラリでは、32ビットライブラリと64ビットライブラリの両方を64ビットシステムにインストールすることができます。これはia32-libs、Ubuntu 10.04以前のパッケージで利用できます。のファイルリストにia32-libsよると、ファイルはlibfuse.so.2含まれていません。つまり、一度に両方のアーキテクチャをインストールすることはできません。

Ubuntu 11.10 Oneiric以降、「マルチアーチ」と呼ばれる異なるアーキテクチャのパッケージを同時にインストールできるようになりました。残念ながら、Oneiric のファイルリストをlibfuse2信じているかもしれませんが、このパッケージはまだ移行されていません。これは、パッケージの依存関係から判断できます。パッケージがmultiarch-supportlibdrm2のように)依存している場合は、マルチアーキテクチャサポートがサポートされています。ただし、これは、パッケージを複数のアーキテクチャーに同時にインストールできることを保証するものではありません

パッケージのmulti-arch機能についてローカルキャッシュをクエリするにはlibc6、次のように実行します。

apt-cache show libc6 | grep ^Multi-Arch:

このコマンドの出力はMulti-Arch: sameです。つまり、32ビットバージョンと64ビットバージョンの両方のパッケージを一度にインストールできます。出力がない場合、パッケージはマルチアーチサポートの準備ができていません。他の可能な値foreign(同時インストールはできませんが、他のアーキテクチャの依存関係を満たすために使用できます)およびallowed(iirc、一度にインストールできるパッケージは1つだけですが、パッケージは他の依存関係を満たすために使用できますパッケージ)

以下を使用して、64ビットシステムに32ビットパッケージをインストールできるはずです。

sudo apt-get install packagename:i386

64ビットマシン用の32ビットlibfuseのビルド

32ビットのヒューズライブラリはに付属しia32-libsていないため、自分でビルドする以外に方法はありません。

  1. fuseのビルド依存関係をインストールし、ソースコードを取得します。

    sudo apt-get install ia32-libs libc6-i386
    sudo apt-get build-dep fuse
    apt-get source fuse
    
  2. ソースツリーを設定し、fuseをビルドします(必要に応じてディレクトリ名を調整します):

    cd fuse-2.8.4
    CFLAGS=-m32 ./configure --host=i386-linux-gnu
    make -j 50
    
  3. 32ビットのヒューズライブラリをインストールします(それに応じてバージョンを調整します)。

    sudo ln -s libfuse.so.2.8.4 /usr/local/lib/libfuse.so.2
    sudo install -m644 lib/.libs/libfuse.so.2.8.4 /usr/local/lib/
    
  4. リンカキャッシュを更新します。

    sudo ldconfig
    
  5. (オプション)ソースファイルを削除します。

    cd ..
    rm -r fuse-2.8.4
    

0

はいあります。ia32をインストールします。これが完了すると、32ビットベースのプログラムを64ビットプラットフォームにインストールできるようになります。


私はia32をインストールしました(それが共有ライブラリについて話していたものです)。これはlibfuse.so.2でのみエラーを引き起こしました
Mat

1
ia32-libsすべての32ビットライブラリが含まれているわけではありません。
Lekensteyn
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.