Bash retorna ENOENT tentando executar um binário que existe

3

Eu tenho um script de construção Rust que preciso executar para um projeto que estou contribuindo. A carga tenta executar o script antes do processo de criação principal, mas falha, por isso tentei executá-lo:

$ ./build-script-build
bash: ./build-script-build: No such file or directory

No entanto, o arquivo existe claramente:

$ file build-script-build
build-script-build: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld64.so.1, not stripped

E eu tenho permissões:

$ stat -c %A build-script-build
-rwxr-xr-x

strace mostra o seguinte:

$ strace ./build-script-build
execve("./build-script-build", ["./build-script-build"], [/* 23 vars */]) = -1 ENOENT (No such file or directory)
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
write(2, "strace: exec: No such file or di"..., 40) = 40
exit_group(1)                           = ?
+++ exited with 1 +++

Eu sei que este problema pode surgir com 32 bits executáveis em sistemas de 64 bits , mas file mostra que é de 64 bits. O que estou perdendo?

Isso está em Linux 4.8.13-1-ARCH x86_64 , a propósito.

    
por Cormac O'Brien 17.01.2017 / 02:22

0 respostas