Saya menggunakan Ubuntu 12.04 64 bit dan saya mencoba membuat game (GTA SA) berfungsi dengan anggur, tetapi terus mogok. Setelah membaca log kesalahan, sepertinya saya memerlukan gstreamer versi 32 bit, mungkin untuk memutar video intro. Saya sudah memiliki ia32-libs
, karena saya membaca di suatu tempat saya akan membutuhkannya untuk menjalankan perangkat lunak 32 bit. Saya pertama kali mencoba:
sudo apt-get install gstreamer0.10-ffmpeg:i386
Yang mengembalikan:
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
Dan itu juga tergantung pada libavformat, libpostproc dan libswscale dengan kesalahan yang hampir sama. Jadi saya terus mencari dan menemukan alat yang bagus, getlibs, yang memungkinkan Anda untuk menginstal perpustakaan 32 bit. Saya pikir itu hanya menempatkan mereka di /usr/lib32
direktori, yang mungkin bukan cara terbaik untuk melakukan ini, tetapi saya tetap mencobanya.
Jadi saya menginstal perpustakaan 32 bit dengan getlib yang dikeluhkan oleh anggur. Sekarang saya mendapatkan kesalahan yang berbeda, pada dasarnya perpustakaan 32 bit mereferensikan perpustakaan lain yang sekarang tidak dapat ditemukan. Misalnya salah satu kesalahan mengatakan:
Failed to load plugin '/usr/lib32/gstreamer-0.10/libgstffmpeg.so': libavformat.so.53: cannot open shared object file: No such file or directory
Jadi pemikiran awal saya benar, karena sekarang menggunakan versi 32 bit. Sekarang saya mencoba mencari tahu dengan ldd untuk melihat di mana perpustakaan mereferensikan perpustakaan lain:
# 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
Jadi memang, libgstffmpeg.so tidak dapat menemukan libavformat.so yang benar. Saya mencoba menginstal libavformat versi 32 bit dengan getlibs lagi, yang menempatkannya di /usr/lib32/i386-linux-gnu/libavformat.so
. Tetapi ldd masih memberi tahu saya bahwa itu tidak dapat menemukan libavformat. Kemudian saya mencoba membuat tautan simbolik di direktori yang sama tetapi menamakannya libavformat.so.53
dan bahkan membuat symlink ke `/usr/lib/i386-linux-gnu/libavformat.so.53′, tetapi keduanya memberi saya kesalahan yang sama.
Sekarang saya yakin ini bukan cara yang benar untuk dilakukan, tetapi saya tidak tahu cara yang tepat untuk melakukannya. Jadi apa cara yang benar untuk melakukan ini, atau apakah gstreamer0.10-ffmpeg tidak memiliki dukungan 32 bit atau multilib? Dan bagaimana saya bisa mengetahui apa direktorinya, di mana libgstffmpeg (atau perpustakaan apa pun yang saya kira) memeriksa lib 32 bit yang dirujuknya?
Terkait:Linux – Bagaimana cara membuat daftar hitam sektor RAM buruk yang benar menurut indikasi kesalahan MemTest86+?Jawaban yang Diterima:
Coba:
ldconfig -p | grep lib32
Jika Anda tidak melihat output, ini karena cache linker (baca paragraf pertama man ldconfig
, dan tentang -p
switch) tidak mereferensikan /usr/lib32. Saya memeriksa sistem ubuntu 12.04 dan itu tidak ada di sana secara default. Anda dapat menambahkannya ke:/etc/ld.so.conf.d/libc.conf
yang mungkin hanya berisi /usr/local/lib
. Jalankan ldconfig
, lalu perintah -p dari atas. Anda akan melihat item di /usr/lib32; sekarang coba ldd Anda di lib gstreamer 32-bit lagi.