exec de 32 bits falha ao iniciar, mas funciona quando iniciado por meio de ltrace / strace

1

Eu tenho um binário de 32 bits (em execução em um host de 64 bits) que falha ao iniciar quando iniciado sozinho, retornando um erro ao carregar uma biblioteca compartilhada (não é possível abrir o arquivo de objeto compartilhado: Nenhum arquivo ou diretório). Mas funciona perfeitamente quando eu inicio usando ltrace ou strace (tentei encontrar o ponto de falha) ...

O que há de errado? Eu verifiquei a biblioteca existe, tentei adicioná-lo ao LD_LIBRARY_PATH, eu também verifiquei /lib/ld-linux.so.2 existe ...

O host está executando o RedHat-EL 5.6 ...

    
por francois 05.12.2012 / 14:49

1 resposta

0

Você precisa da versão de 32 bits das bibliotecas para executar aplicativos de 32 bits no sistema de 64 bits. Infelizmente o Redhat não tem pacotes como o ia32-libs que instala a maioria deles, é suposto que você deve instalar todos os aplicativos de 32 bits com o yum e ele irá instalar as bibliotecas apropriadas para você. Se o seu aplicativo for de terceiros, tente instalar a versão de 32 bits de cada biblioteca de que precisa, eles normalmente têm o sufixo .i586, então você executa algo como "yum install libusb.i586".

    
por 05.12.2012 / 15:41