Невозможно установить 32-битный gstreamer-ffmpeg, библиотека не может найти другие 32-разрядные библиотеки

Я на Ubuntu 12.04 64 бит, и я пытаюсь получить игру (GTA SA), работающую в вине, но она продолжает терпеть крах. После чтения журналов ошибок мне показалось, что мне нужны 32-разрядные версии gstreamer, возможно, для воспроизведения вступительного видео. У меня уже есть ia32-libs , потому что я где-то читал, что мне нужно, чтобы запустить 32-битное программное обеспечение. Я сначала попробовал:

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

Что возвращает:

  • Запустите 64-битное приложение на 32-битной системе (Ubuntu)
  • Связь между ldconfig и ld.so.cache
  • Проблема с ffmpeg в петле bash
  • Интроспекция интерфейса общей библиотеки
  • Установите ffmpeg на Netgear NAS, выполнив произвольное сжатие Debian
  • Есть ли эквивалент звукового фильтра atempo ffmpeg, но для avconv для ускорения видео (и аудио)?
  •   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 с примерно той же ошибкой. Поэтому я продолжал поиск и нашел хороший инструмент, getlibs, который позволяет устанавливать 32-битные библиотеки. Я думаю, что это просто помещает их в каталог /usr/lib32 , что, вероятно, не самый лучший способ сделать это, но я все равно попробовал.

    Поэтому я установил 32-битные библиотеки с getlibs, о которых жаловалось вино. Теперь у меня разные ошибки, в основном 32-битная библиотека ссылается на другие библиотеки, которые она теперь не может найти. Например, одна из ошибок говорит:

     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. Я попытался снова установить 32-битную версию libavformat с помощью getlibs, который разместил ее в /usr/lib32/i386-linux-gnu/libavformat.so . Но ldd все еще говорит мне, что он не может найти libavformat. Затем я попытался сделать символическую ссылку в том же каталоге, но назвал ее libavformat.so.53 и даже сделал символическую ссылку на `/usr/lib/i386-linux-gnu/libavformat.so.53 ', но оба дали мне такая же ошибка.

    Теперь я уверен, что это действительно не правильный путь, но я не знал, как правильно это сделать. Итак, каков правильный способ сделать это, или gstreamer0.10-ffmpeg просто не поддерживает 32 бита или мультилибра? И как я могу узнать, что такое каталог, где libgstffmpeg (или любая библиотека, я думаю) проверяет, что это 32-битные библиотеки, на которые ссылается?

  • Почему ffmpeg удален из Debian?
  • FFmpeg - Разделение нескольких видеофрагментов
  • Преобразование файлов в OGG с помощью FFMPEG создает чрезвычайно большой файл
  • Спецификация RPM для проекта C / C ++: как я могу узнать, как заполнять поля Requires и BuildRequires?
  • ffmpeg и libvpx: ошибка при загрузке разделяемых библиотек
  • git - извлеките некоторые файлы в общий 'lib'
  • One Solution collect form web for “Невозможно установить 32-битный gstreamer-ffmpeg, библиотека не может найти другие 32-разрядные библиотеки”

    Пытаться:

     ldconfig -p | grep lib32 

    Если вы не видите выход, это связано с тем, что кеш компоновщика (прочитайте первый параграф man ldconfig и о -p переключателе) не ссылается на / usr / lib32. Я проверил систему ubuntu 12.04, и по умолчанию ее нет. Вы можете добавить его в: /etc/ld.so.conf.d/libc.conf который может содержать только /usr/local/lib . Запустите ldconfig , затем команду -p сверху. Вы должны увидеть материал в / usr / lib32; теперь попробуйте ваш ldd на 32-битном gstreamer lib снова.

    Linux и Unix - лучшая ОС в мире.