Erro de exec do Linux, “não encontrado”

2

Executando o Debian / Crunchbang e estou recebendo um erro estranho quando tento executar scripts. Por exemplo

exec: 392: ./firefox-bin: not found

Eu nunca encontrei isso antes e não consegui encontrar nenhuma boa informação sobre isso. Existe alguém que se importe em explicar o que isso significa e por que isso ocorre?

O arquivo aparentemente "não encontrado" existe nesse caminho e pertence a mim e ao executável. Eu também tentei executá-lo de diferentes locais, mas sem sorte.

    
por Bert 18.07.2011 / 21:49

3 respostas

5

Se você tem certeza de que o arquivo em questão existe, o que provavelmente significa é que o 'intérprete' do arquivo não foi encontrado. Como firefox-bin deve ser um arquivo executável ELF, o interpretador provavelmente será algo como /lib/ld-linux.so.2 e é esse arquivo que provavelmente está faltando.

Tente executar readelf -l ./firefox-bin para descobrir o que o interpretador está - procure a linha "[Solicitando intérprete de programa: /lib/ld-linux.so.2]" na saída.

    
por 18.07.2011 / 21:53
2

Como TomH disse, isso é provável porque o arquivo firefox-bin tem o formato binário errado (a mensagem "não encontrada" é enganosa). Você provavelmente baixou a versão de 32 bits do Firefox (a página de download do Firefox oferece apenas 32 bits) e tentou executá-la em um sistema de 64 bits que não possui bibliotecas compatíveis com versões anteriores. Se for esse o caso, existem duas soluções:

  • Você pode pegar uma versão de 64 bits: link

  • Ou você pode instalar o pacote ia32-libs (é assim que ele é chamado no Ubuntu).

por 22.07.2011 / 23:49
0

Do seu exemplo, parece que o script diz "./firefox-bin". isto é, ele quer que o executável do firefox esteja no mesmo diretório que o script, o que não é garantido. E se você substituir isso pelo caminho completo para o arquivo?

    
por 18.07.2011 / 22:12