GNU/Linux >> Znalost Linux >  >> Linux

Normálně nelze nainstalovat 32bitový Gstreamer-ffmpeg, knihovna nemůže najít jiné 32bitové knihovny?

Používám Ubuntu 12.04 64 bitů a snažím se zprovoznit hru (GTA SA) ve víně, ale stále padá. Po přečtení chybových protokolů se zdá, že jsem potřeboval nějaké 32bitové verze gstreameru, pravděpodobně k přehrání úvodního videa. Již mám ia32-libs , protože jsem někde četl, že to budu potřebovat ke spuštění 32bitového softwaru. Poprvé jsem zkusil:

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

Což vrátí:

 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

A také závisí na libavformat, libpostproc a libswscale s přibližně stejnou chybou. Takže jsem pokračoval v hledání a našel jsem pěkný nástroj, getlibs, který vám umožňuje instalovat 32bitové knihovny. Myslím, že je umístí do /usr/lib32 adresář, což pravděpodobně není nejlepší způsob, jak to udělat, ale přesto jsem to zkusil.

Nainstaloval jsem tedy 32bitové knihovny s getlibs, na které si víno stěžovalo. Nyní mám různé chyby, v podstatě 32bitová knihovna odkazuje na jiné knihovny, které nyní nemůže najít. Například jedna z chyb říká:

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

Moje původní myšlenka byla tedy správná, protože nyní používá 32bitovou verzi. Nyní jsem se to snažil zjistit pomocí ldd, abych zjistil, kde knihovna odkazuje na jiné knihovny:

# 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

Takže skutečně, libgstffmpeg.so nemůže najít správný libavformat.so. Zkusil jsem znovu nainstalovat 32bitovou verzi libavformat pomocí getlibs, který ji umístil do /usr/lib32/i386-linux-gnu/libavformat.so . Ale ldd mi stále říká, že nemůže najít libavformat. Pak jsem se pokusil vytvořit symbolický odkaz ve stejném adresáři, ale pojmenoval jsem ho libavformat.so.53 a dokonce jsem vytvořil symbolický odkaz na `/usr/lib/i386-linux-gnu/libavformat.so.53′, ale oba mi dávají stejnou chybu.

Teď jsem si jistý, že to opravdu není správný způsob, jak jít, ale nevěděl jsem, jak to udělat. Jaký je tedy správný způsob, jak to udělat, nebo gstreamer0.10-ffmpeg jednoduše nemá 32bitovou nebo multilib podporu? A jak mohu zjistit, co je to adresář, kde libgstffmpeg (nebo jakákoliv knihovna, myslím) kontroluje 32bitové libs, na které odkazuje?

Související:Linux – Jak zakázat správný špatný sektor RAM podle indikace chyby MemTest86+?

Přijatá odpověď:

Zkuste:

ldconfig -p | grep lib32

Pokud nevidíte žádný výstup, je to proto, že mezipaměť linkeru (přečtěte si první odstavec man ldconfig a o -p switch) neodkazuje na /usr/lib32. Zkontroloval jsem systém ubuntu 12.04 a ten tam ve výchozím nastavení není. Můžete jej přidat do:/etc/ld.so.conf.d/libc.conf který může obsahovat pouze /usr/local/lib . Spusťte pouze ldconfig , pak příkaz -p shora. Měli byste vidět věci v /usr/lib32; nyní zkuste svůj ldd znovu na 32bitové knihovně gstreamer.


Linux
  1. Jak nainstalovat knihovnu Ncurses v Linuxu

  2. Nemůžete najít soubor k opravě na vstupním řádku 3?

  3. Propojení 32bitové knihovny s 64bitovým programem

  1. CentOS 64 bit špatný interpret ELF

  2. Nelze najít chybu knihovny libcrypto

  3. Android adb nebyl nalezen

  1. Při instalaci Qt na linux nelze najít -lGL

  2. node.js:nelze najít modul 'request'

  3. Jak správně nainstalovat wkhtmltopdf na debian 64 bit?