Ausência de bibliotecas compartilhadas ao usar o chroot

0

Estou tentando usar schroot para executar um aplicativo de 32 bits em uma instalação de 64 bits do Ubuntu (na verdade, Lubuntu). Eu obtive êxito ao criar o chroot preenchido pelo seguinte comando:

sudo debootstrap --arch=i386 raring /srv/chroot/raring_i386 http://archive.ubuntu.com/ubuntu

Quando insiro o ambiente chroot e tento iniciar o aplicativo, recebo erros sobre a falta de bibliotecas compartilhadas. Por exemplo:

error while loading shared libraries: libICE.so.s: cannot open shared object file: No such file or directory

Até agora, todas as bibliotecas ausentes no meu ambiente chroot estão localizadas em usr/lib/i386-linux-gnu/ . Eu posso copiar essas bibliotecas ausentes de uma instalação completa diferente do Ubuntu de 32 bits, mas eu teria pensado que a etapa debootstrap acima deveria ter baixado essas diretamente. Alguém pode fornecer algumas informações adicionais sobre como o uso de debootstrap deve criar o ambiente chroot ? Eu possivelmente perdi um passo ou há uma opção diferente na chamada para debootstrap para dizer para obter algumas bibliotecas compartilhadas adicionais?

Muito obrigado!

    
por duckdongle 10.07.2013 / 17:08

1 resposta

1

Depois de um pouco de tentativa / erro e sorte na busca na web, acho que encontrei a solução que estava procurando. Aqui está um resumo dos passos que usei para resolver o problema:

  1. No ambiente chroot , execute o seguinte comando para revelar as bibliotecas ausentes:

    ldd <binary executable>
    

    Isso revelará bibliotecas ausentes como "não encontradas". Alternativamente, este comando pode ser canalizado para o grep como:

    ldd <binary executable> | grep "not found"
    
  2. Use o seguinte comando para localizar os pacotes que fornecerão as bibliotecas ausentes:

    apt-cache search <library name>
    
  3. Instale o pacote da etapa anterior a partir do ambiente chroot (vários podem ser encontrados):

    sudo apt-get install <package name>
    

Depois de repetir as etapas acima para todas as bibliotecas ausentes, consegui iniciar o aplicativo com êxito a partir do ambiente chroot .

A referência que encontrei que me deu a pista para pesquisar e instalar bibliotecas perdidas é aqui .

    
por duckdongle 10.07.2013 / 23:03