Como instalar a versão lib394 i386 (32 bits) no Ubuntu 11.10 amd64

1

Eu tenho um programa de aquisição antigo para um firewire que parece precisar da versão de 32bits da biblioteca libraw1394.so .

Algumas notas, sobre o problema:

Eu acho que a saída de uname -m indica que eu tenho um 64bits do Ubuntu instalado:

$ uname -m
x86_64

Se eu executar o ldd no meu aplicativo, a saída indica que o lib1394.so não foi encontrado:

$ ldd ./smallv
    linux-gate.so.1 =>  (0xf76e9000)
    libsvs.so => /usr/local/svs/bin/libsvs.so (0xf76c7000)
    libsvscalc.so => /usr/local/svs/bin/libsvscalc.so (0xf76b7000)
    libsvscap.so => /usr/local/svs/bin/libsvscap.so (0xf76a0000)
    libfltk.so.1.1 => /usr/local/svs/bin/libfltk.so.1.1 (0xf761a000)
    libfltk_gl.so.1.1 => /usr/local/svs/bin/libfltk_gl.so.1.1 (0xf7612000)
    libGLU.so.1 => /usr/lib32/libGLU.so.1 (0xf7573000)
    libGL.so.1 => /usr/lib32/nvidia-current/libGL.so.1 (0xf74a1000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf73b5000)
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf739a000)
    libm.so.6 => /lib32/libm.so.6 (0xf7370000)
    libc.so.6 => /lib32/libc.so.6 (0xf71f1000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf71d3000)
    libdcap.so => /usr/local/svs/bin/libdcap.so (0xf71c5000)
    libraw1394.so.8 => not found
    libXext.so.6 => /usr/lib32/libXext.so.6 (0xf71b2000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf707c000)
    libnvidia-tls.so.280.13 => /usr/lib32/nvidia-current/tls/libnvidia-tls.so.280.13 (0xf7079000)
    libnvidia-glcore.so.280.13 => /usr/lib32/nvidia-current/libnvidia-glcore.so.280.13 (0xf5767000)
    librt.so.1 => /lib32/librt.so.1 (0xf575e000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf5759000)
    /lib/ld-linux.so.2 (0xf76ea000)
    libraw1394.so.8 => not found
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf573a000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf5735000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf572e000)

Quando executo o aplicativo, recebo o seguinte erro:

$ ./smallv
./smallv: error while loading shared libraries: libraw1394.so.8: wrong ELF class: ELFCLASS64

A biblioteca está localizada em /usr/lib/ , mas é na versão ELF63:

$ readelf -h /usr/lib/libraw1394.so
ELF Header:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  Entry point address:               0x4460
  Start of program headers:          64 (bytes into file)
  Start of section headers:          58768 (bytes into file)
  Flags:                             0x0
  Size of this header:               64 (bytes)
  Size of program headers:           56 (bytes)
  Number of program headers:         7
  Size of section headers:           64 (bytes)
  Number of section headers:         26
  Section header string table index: 25

Eu tenho procurado uma solução em vários posts. Então, eu acho que tenho o código-fonte dos aplicativos para poder compilá-lo. Então eu tenho que soluções, mas eu não sei como executá-las:

solution 1) Instale a versão i386 (32bits) da biblioteca
solução 2) Compile o aplicativo novamente

Eu tenho lido posts e parece que eu deveria usar tanto GetLibs como ia32-libs ou multiarch. Por favor, qualquer feedback para o problema será útil! Muito obrigado!

jespestana

    
por jespestana 02.03.2013 / 05:12

1 resposta

1

Primeiro de tudo, você está certo, o seu sistema está usando a arquitetura de 64 bits.

Como você disse que uma solução para o seu problema poderia ser instalar a versão i386 (32bits) da biblioteca , eu lhe disse como fazer:

  1. Abra um terminal Ctrl + Alt + T
  2. Digite este comando: sudo apt-get install libraw1394-11:i386

Agora você deve ter instalado a versão de 32 bits da biblioteca libraw .

    
por Lucio 11.03.2013 / 01:49