não pode executar binário no Ubuntu

4

Eu não posso acreditar que estou perguntando isso ... claramente eu estou em uma forma rara hoje.

Tentando configurar uma nova máquina Ubuntu e baixando apenas 'p4' (cliente de linha de comando Perforce). É um download de arquivo único - um executável binário vinculado estaticamente, então eu fiz:

wget http://www.perforce.com/downloads/perforce/r09.2/bin.linux26x86/p4

... diretamente para / usr / bin. Simples o suficiente. Exceto:

root@aj-ubuntu:/usr/bin# ll p4 
-rwxr-xr-x 1 root root 748808 2010-02-11 16:54 p4
root@aj-ubuntu:/usr/bin# ./p4 
-su: ./p4: No such file or directory
root@aj-ubuntu:/usr/bin# /usr/bin/p4 
-su: /usr/bin/p4: No such file or directory

O que acontece no mundo aqui ...?!

Agradecemos antecipadamente pelo seu ridículo:)

-aj

    
por AJ. 11.02.2010 / 23:01

7 respostas

4

Ok, eu peguei o arquivo do seu URL (abaixo de 800KB) e tentei isso (de um terminal do Cygwin que era útil).

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

Mas, você espera que ele esteja vinculado estaticamente, por quê?

Atualização: só para ter certeza, por favor, confirme que você está executando um Ubuntu de 32 bits.
Se você estiver executando um sistema de 64 bits, provavelmente precisará do pacote ' ia32-libs '.

    
por 12.02.2010 / 02:39
1

experimente file ./p4 e veja o que ele diz. É provável que você não tenha as bibliotecas certas instaladas para executá-lo (portanto, não é possível carregar o binário de forma alguma - você obtém os mesmos problemas com o Windows se não tiver as dlls corretas)

    
por 11.02.2010 / 23:25
1

Faça ls -lb p4* para ver se há algum caractere perdido no nome do arquivo.

    
por 12.02.2010 / 00:13
1

Isso é o que acontece quando o seu executável não é válido, pode ser para outra arquitetura ou para outro kernel. Ou apenas um cabeçalho ELF corrompido.

    
por 12.02.2010 / 05:30
1

O intérprete readelf -a /usr/bin/p4 | grep interpreter aponta para provavelmente está faltando. É provavelmente enviado em algum pacote compat como apontado por outros comentaristas.

    
por 12.02.2010 / 12:17
1

chmod + x / usr / bin / p4

    
por 21.02.2010 / 12:43
0

o executável estático não é dependente de bibliotecas .... ele precisa de um kernel compatível, ou seja, um que tenha as mesmas chamadas de sistema que foram construídas.

p4 é um cliente perforce, e o seu é construído contra o kernel v2.2.5 há 10 anos ...

funcionará com kernels posteriores (sem suporte longo) 2.2,

pode funcionar com (mês desde sem suporte) 2.4 kernels,

não funcionará com (ainda suportado) kernels 2.6 e 3.x

Eles fazem a versão para link dos clientes 2.6 disponível para suas necessidades.

    
por 22.04.2012 / 09:35