O que fazer com um arquivo executável que simplesmente não é executado?

2

Eu baixei o executável do Linux para Unetbootin 494 , e agora estou tentando executá-lo . Como root, tornei-o executável e tentei executá-lo:

chmod +x unetbootin-linux-494
./unetbootin-linux-494

Nada acontece e nenhuma saída é exibida. ps -e | grep unetbootin não mostra nada também. O tamanho do arquivo parece correto (4,3 MB), embora eu não veja uma soma de verificação no sourceforge com a qual ele possa ser verificado. Eu estou rodando na minha partição /home (como root, no entanto), então o sistema de arquivos não é não-executável.

Como posso executar esse arquivo ou pelo menos depurar o problema ainda mais? Estou usando o Debian x64.

    
por John Bensin 24.03.2013 / 02:06

1 resposta

3

Resposta curta:

A instalação de ia32-libs e ia32-libs-gtk deve corrigir o problema. O problema era bem básico: executar um executável de 32 bits em um sistema de 64 bits sem as bibliotecas adequadas não funciona.

Resposta mais longa:

Meu post inicial pode ter sido muito apressado, mas como tive uma pequena dificuldade em encontrar uma solução, eu também poderia responder. Eu corri strace ./unetbootin-linux-494 , o que me diz:

execve("./unetbootin-linux-494", ["./unetbootin-linux-494"], [/* 33 vars */]) = 0
[ Process PID=5369 runs in 32 bit mode. ]
old_mmap(0x1020000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0x1020000) = 0x1020000
readlink("/proc/self/exe", "/home/jb/Downloads/unetbootin-linux-494", 4096) = 43
old_mmap(0x8048000, 10891295, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x8048000
mprotect(0x8048000, 10891292, PROT_READ|PROT_EXEC) = 0
old_mmap(0x8aac000, 124071, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0xa63000) = 0x8aac000
mprotect(0x8aac000, 124068, PROT_READ|PROT_WRITE) = 0
old_mmap(0x8acb000, 4436, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x8acb000
brk(0x8acd000)                          = 0x8bfc000
open("/lib/ld-linux.so.2", O_RDONLY)    = -1 ENOENT (No such file or directory)
_exit(127)    = ?

O problema é que o objeto ld-linux.so.2 não existe no meu sistema. Como esse objeto é parte de ia32-libs , eu instalei esse pacote. No entanto, isso não é suficiente, porque recebi esse erro:

unetbootin-linux-494: error while loading shared libraries: libgthread-2.0.so.0: cannot open shared object file: No such
file or directory

De acordo com este relatório de erros , no entanto, o problema é que o pacote ia32-libs-gtk precisa ser instalado também. Depois que eu instalei isso, o executável funcionou normalmente.

    
por 24.03.2013 / 02:34