32ビットgstreamer-ffmpegを正常にインストールできず、ライブラリが他の32ビットライブラリを見つけることができませんでした。

32ビットgstreamer-ffmpegを正常にインストールできず、ライブラリが他の32ビットライブラリを見つけることができませんでした。

私はUbuntu 12.04 64ビットを使用しており、ゲーム(GTA SA)をワインで実行しようとしていますが、クラッシュし続けます。エラーログを読んだ後に紹介ビデオを再生するには、32ビット版のgstreamerが必要なようです。ia32-libs32ビットソフトウェアを実行するために必要であるという記事をどこかで読んだので、すでに持っています。私はまず次のことを試してみます。

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最善のアプローチではないかもしれませんが、ディレクトリに入れることだと思いましたが、とにかく試してみました。

だから私はgetl​​ibsを使ってワインが文句を言う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を使用してlibavformatの32ビットバージョンを再インストールしようとしましたが、/usr/lib32/i386-linux-gnu/libavformat.so.lddにまだlibavformatが見つからないというメッセージが表示されます。その後、同じディレクトリにシンボリックリンクを作成しようとしましたが、名前を付けてlibavformat.so.53「/usr/lib/i386-linux-gnu/libavformat.so.53」を指すシンボリックリンクを作成しましたが、両方とも同じエラーが発生しました。

今、私はこれが実際に正しい方法ではないと確信していますが、正しい方法がわかりません。それでは、正しいアプローチは何ですか、またはgstreamer0.10-ffmpegには32ビットまたは複数のlibサポートがありませんか? libgstffmpeg(または私が推測しているどのライブラリでも)が参照する32ビットライブラリをチェックインするディレクトリをどのように見つけることができますか?

答え1

努力する:

ldconfig -p | grep lib32

man ldconfig出力が表示されない場合は、リンカキャッシュ(読み取りとスイッチの最初の段落-p)が/ usr / lib32を参照していないためです。 Ubuntu 12.04システムを確認しましたが、デフォルトでは存在しません。次の/etc/ld.so.conf.d/libc.conf項目にのみ追加できます/usr/local/libldconfig上記の-pコマンドを実行してから実行してください。 /usr/lib32でこれを見ることができます。それでは、32ビットgstreamer libでlddを再試行してください。

関連情報