GNU/Linux >> Linux の 問題 >  >> Linux

32ビットGstreamer-ffmpegをインストールできません通常、ライブラリは他の32ビットライブラリを見つけることができませんか?

Ubuntu 12.04 64ビットを使用していて、ゲーム(GTA SA)をワインで動作させようとしていますが、クラッシュし続けます。エラーログを読んだ後、おそらくイントロビデオを再生するために、32ビットバージョンのgstreamerが必要だったようです。私はすでにia32-libsを持っています 、どこかで読んだので、32ビットソフトウェアを実行するためにそれが必要になります。私が最初に試したのは:

sudo apt-get install gstreamer0.10-ffmpeg:i386

どちらが返されますか:

 gstreamer0.10-ffmpeg:i386 : Depends: libavcodec53:i386 (>= 4:0.7.3-1) but it is not going to be installed or
                                      libavcodec-extra-53:i386 (>= 4:0.7.3-1) but it is not going to be installed

また、libavformat、libpostproc、libswscaleにも依存し、ほぼ同じエラーが発生します。そこで私は検索を続け、32ビットライブラリをインストールできる優れたツールgetlibsを見つけました。 /usr/lib32に配置するだけだと思います ディレクトリ。これを行うにはおそらく最善の方法ではありませんが、とにかく試してみました。

そこで、wineが不満を言っていたgetlibsを使用して32ビットライブラリをインストールしました。さまざまなエラーが発生しました。基本的に、32ビットライブラリは、現在は見つからない他のライブラリを参照しています。たとえば、エラーの1つは次のように述べています。

Failed to load plugin '/usr/lib32/gstreamer-0.10/libgstffmpeg.so': libavformat.so.53: cannot open shared object file: No such file or directory

32ビットバージョンを使用しているので、私の最初の考えは正しかったです。今、私はライブラリが他のライブラリを参照している場所を確認するためにlddでそれを理解しようとしていました:

# This one is fine
ldd /usr/lib/gstreamer-0.10/libgstffmpeg.so | grep avformat
libavformat.so.53 => /usr/lib/x86_64-linux-gnu/libavformat.so.53 (0x00007f8314181000)

# This one isn't
ldd /usr/lib32/gstreamer-0.10/libgstffmpeg.so | grep avformat
libavformat.so.53 => not found

したがって、実際、libgstffmpeg.soは正しいlibavformat.soを見つけることができません。 getlibsを使用して32ビットバージョンのlibavformatを再度インストールしてみました。これにより、/usr/lib32/i386-linux-gnu/libavformat.soに配置されました。 。しかし、lddはまだlibavformatが見つからないと言っています。次に、同じディレクトリにシンボリックリンクを作成しようとしましたが、libavformat.so.53という名前を付けました。 また、 `/usr/lib/i386-linux-gnu/libavformat.so.53'へのシンボリックリンクも作成しましたが、どちらも同じエラーが発生します。

これは本当に正しい方法ではないと確信していますが、正しい方法がわかりませんでした。では、これを行う正しい方法は何ですか、またはgstreamer0.10-ffmpegは単に32ビットまたはmultilibをサポートしていませんか?そして、ディレクトリが何であるかをどのように知ることができますか?libgstffmpeg(または私が推測する任意のライブラリ)は、参照している32ビットライブラリをチェックしますか?

関連:Linux – MemTest86 +エラー表示に従って正しい不良RAMセクターをブラックリストに登録するにはどうすればよいですか?

承認された回答:

試してみてください:

ldconfig -p | grep lib32

出力が表示されない場合、これはリンカーキャッシュが原因です(man ldconfigの最初の段落を読んでください) 、および-pについて switch)は/ usr/lib32を参照しません。私はubuntu12.04システムをチェックしましたが、それはデフォルトではありません。次の場所に追加できます:/etc/ld.so.conf.d/libc.conf /usr/local/libだけが含まれている可能性があります 。 ldconfigだけを実行します 、次に-pコマンドを上から。 / usr/lib32にあるものを確認する必要があります。次に、32ビットのgstreamerlibでlddを再試行します。


Linux
  1. Linux – 32ビットまたは64ビットをインストールする必要がありますか?

  2. ld が既存のライブラリを見つけることができません

  3. 32 ビット ライブラリを 64 ビット プログラムにリンクする

  1. CentOS 64 ビットの不適切な ELF インタープリター

  2. libcrypto ライブラリ エラーが見つかりません

  3. パイプの反対側にあるプロセスを見つける

  1. LinuxにNcursesライブラリをインストールする方法

  2. Linux – Linuxヘッダー(kali Linux)をインストールできませんか?

  3. UNIXソケット接続のもう一方の端を見つける方法は?