Você provavelmente está tentando executar um binário de 32 bits em um sistema de 64 bits que não tem suporte para 32 bits instalado.
Existem três casos em que você pode receber a mensagem "Nenhum arquivo ou diretório":
- O arquivo não existe. Eu presumo que você tenha verificado que o arquivo existe (talvez porque o shell o complete).
- Existe um arquivo com esse nome, mas é um link simbólico pendente.
- O arquivo existe e você pode até lê-lo (por exemplo, o comando
file shank-linux-120720110-1-bin
exibe algo como "executável LSB de 32 bits ELF…") e, no entanto, quando você tenta executá-lo, é informado de que arquivo não existe.
A mensagem de erro neste último caso é confusa. O que ele está dizendo é que um componente chave do ambiente de tempo de execução necessário para executar o programa está faltando. Infelizmente, o canal pelo qual o erro é relatado tem espaço apenas para o código de erro e não para essa informação extra que é realmente o ambiente de tempo de execução responsável. Se você quiser a versão técnica desta explicação, leia Obtendo mensagem" Não encontrado "ao executar um binário de 32 bits em um sistema de 64 bits .
O comando file
informará exatamente o que é esse binário. Com poucas exceções, você só pode executar um binário para a arquitetura do processador que o seu lançamento do Ubuntu é para. A principal exceção é que você pode executar binários de 32 bits (x86, a.k.a. IA32) em sistemas de 64 bits (amd64, a.k.a. x86_64).
No Ubuntu até 11.04, para executar um binário de 32 bits em uma instalação de 64 bits, é necessário instalar os ia32-libs
package . Você pode precisar instalar bibliotecas adicionais (você receberá uma mensagem de erro explícita se o fizer).
Desde 11.10 (onírico) introduzido multiarch apoio, você ainda pode instalar ia32-libs
, mas você pode escolher uma abordagem mais detalhada, é o suficiente para obter libc6-i386
(mais qualquer outra biblioteca necessária).