У меня есть скрипт сборки Rust, который мне нужно запустить для проекта, которому я помогаю. Cargo пытается выполнить сценарий до основного процесса сборки, но не удается, поэтому я попытался запустить его:
$ ./build-script-build
bash: ./build-script-build: No such file or directory
Тем не менее, файл явно существует:
$ 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
И у меня есть разрешения:
$ stat -c %A build-script-build
-rwxr-xr-x
strace
показывает следующее:
$ 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 +++
Я знаю, что эта проблема может возникнуть с 32-разрядными исполняемыми файлами на 64-разрядных системах , но file
показывает, что это 64-битный. Что мне не хватает?
Это на Linux 4.8.13-1-ARCH x86_64
, Кстати.
Мне любопытно: что произойдет, если вы 1. запустите strace с полным путем, 2. переместитесь и бежите из другого места (например, / tmp)?
sage