Quando arquivos executáveis não são [duplicados]

4

Hoje encontrei algo que me deixou perplexo. Um colega de trabalho está trabalhando com um binário pré-compilado específico que ele baixou (disponível aqui ). No Ubuntu 10.04 LTS Server em que ele está trabalhando, a tentativa de executar este arquivo produz arquivos não encontrados, mesmo com permissões definidas corretamente.

E ainda, quando eu tento fazer a mesma coisa com o OpenSUSE 11.4, ele funciona muito bem. A execução de file me dá:

ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

As caixas Ubuntu e OpenSUSE são instalações de 64 bits e file retorna as mesmas informações nas duas máquinas.

O que parece ótimo para mim. E na caixa opensuse, o LDD até me fornece uma pequena lista de arquivos de biblioteca. Verificação de mão, todos esses arquivos especificados também existem no servidor Ubuntu. A saída do Strace é diferente:

Opensuse:

execve("./trid", ["./trid"], [/* 122 vars */]) = 0

Ubuntu (o caminho completo não muda o resultado):

execve("./trid", ["./trid"], [/* 19 vars */]) = -1 ENOENT (No such file or directory)

O que pode fazer com que um arquivo como este não seja executável dessa maneira?

    
por sysadmin1138 27.09.2011 / 00:08

1 resposta

2

Digite

ldd ./trid

tanto no sistema openSuse quanto no Ubuntu.

Eu suspeito que você descobrirá que este último não possui um arquivo de biblioteca.

    
por 27.09.2011 / 00:22