-bash: ./flume: Não existe tal arquivo ou diretório, MAS o flume está lá e funciona em outro lugar

6

Temos um produto baseado no Linux do CentOS 4 de 32 bits que é executado sem modificações no CentOS / RHEL 4 e 5 e no SLES 10. de 32 e 64 bits. Ele também é executado sem modificações no SLES 9 de 64 bits. [O SLES 9 de 32 bits requer uma libstdc ++ diferente.

O nome do executável binário principal é flume

Ontem tentamos colocar isso no Ubuntu 10 de 64 bits e, mesmo que o arquivo esteja lá e com o tamanho certo, nós temos:

-bash: ./flume: No such file or directory

file flume mostra que é um ELF de 32 bits (não consegue lembrar a saída exata e o sistema está em uma rede isolada)

Se colocar em /usr/local/bin , então:

which flume
/usr/local/bin/flume

Eu não tentei %código% ainda.

Eu agora suspeito que alguma biblioteca não está lá.

Esta é uma mensagem profundamente inútil e que nunca vi antes.

Isso é peculiar para o Ubuntu ou talvez apenas para esta instalação.

Nós desistimos e nos mudamos para um sistema RHEL 4 e está tudo bem. Mas tenho certeza que gostaria de saber o que causa isso.

    
por lcbrevard 13.07.2010 / 13:07

2 respostas

9

Você pode obter esta mensagem se o flume existir, mas o seu "loader" não existir, onde

  • o carregador de um executável nativo é seu carregador dinâmico, por exemplo, /lib/ld-linux.so.2 ;
  • o carregador de um script é o programa mencionado em sua linha shebang, por exemplo, /bin/sh se o script começar com #!/bin/sh .

No seu caso, parece que você não tem o carregador dinâmico de 32 bits instalado no sistema Ubuntu de 64 bits. Está no pacote libc6-i386 .

strings ./flume | head -n 1 exibirá o caminho para o carregador dinâmico que o flume requer. Este é um daqueles raros casos em que strace ./flume é completamente inútil.

Eu considero essa situação como a mensagem de erro mais enganosa do Unix. Infelizmente, consertá-lo seria difícil: o kernel só pode reportar um código de erro numérico para o chamador do programa, então ele só tem espaço para “comando não encontrado” e não para o nome do carregador que está procurando.

    
por 14.07.2010 / 01:15
0

Você tentou conceder direitos de execução ao arquivo?

chmod +x ./flume 
    
por 13.07.2010 / 13:12

Tags