O comando & binário existe mas não pode ser executado

6

Eu transferi arquivos /etc/* de um servidor Linux para outro e agora tenho um erro estranho. Ambos são Debian Squeeze.

Quando executo um comando, por exemplo ssh , recebo um erro:

bash: /usr/bin/ssh: No such file or directory

Parece que o binário existe:

-rwxr-xr-x 1 root root 358756 Sep 21 14:30 /usr/bin/ssh

O Bash também autocompleta o comando quando eu digito ss e pressiono a tecla Tab . Eu tentei reinstalar, purgando etc, mas não resolveu nada. Provavelmente há algo armazenado em cache em /etc/ , mas não sei o que é excelente.

    
por Lauris 28.09.2012 / 16:31

1 resposta

4

Acho que o comentário de Jim Paris está correto na marca. Você pode obter “nenhum arquivo ou diretório”, mesmo se o arquivo especificado existir, se o carregador dinâmico para esse arquivo não existir. Um caso comum é tentar executar um binário a partir de uma arquitetura diferente que o kernel suporta, mas não o sistema de usuário-terra - normalmente um binário de 32 bits em um sistema de 64 bits que não possui bibliotecas de 32 bits instaladas. Veja Obtendo a mensagem "Não encontrado" ao executar um binário de 32 bits em um sistema de 64 bits para obter uma explicação mais detalhada desse caso.

Aqui, é possível que /usr/bin/ssh use uma biblioteca instalada em um local diferente no novo sistema. Como você copiou o arquivo de cache do vinculador dinâmico /etc/ld.so.cache , o vinculador dinâmico está procurando por essa biblioteca em um local onde ela não existe. Execute ldconfig para atualizar o cache.

Também é possível que você tenha ativado o pré-teste . Em caso afirmativo, remova /etc/prelink.cache .

    
por 29.09.2012 / 03:09