बैश उस बाइनरी को निष्पादित करने की कोशिश कर रहा है जो मौजूद है


3

मुझे एक रस्ट बिल्ड स्क्रिप्ट मिली है जिसे मुझे उस प्रोजेक्ट के लिए चलाने की आवश्यकता है जिसे मैं योगदान दे रहा हूं। कार्गो मुख्य निर्माण प्रक्रिया से पहले स्क्रिप्ट को निष्पादित करने का प्रयास करता है लेकिन विफल रहता है, इसलिए मैंने इसे चलाने की कोशिश की:

$ ./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 +++

मुझे पता है कि यह मुद्दा 64-बिट सिस्टम पर 32-बिट निष्पादन योग्य के साथ क्रॉप कर सकता है , लेकिन fileदिखाता है कि यह 64-बिट है। मैं क्या खो रहा हूँ?

यह चालू है Linux 4.8.13-1-ARCH x86_64, वैसे।


मैं उत्सुक हूँ: क्या होता है अगर आप 1. पूर्ण पथ के साथ स्ट्रेस चलाते हैं, 2. किसी अन्य स्थान से स्थानांतरित करें और चलाएं (जैसे, / tmp)?
ऋषि

यह और यह देखें । मुझे लगता है कि आपके मामले में /lib/ld64.so.1अस्तित्व नहीं है। आपको इसे सही दुभाषिया ( इस टिप्पणी की तुलना ) के लिए एक सहानुभूति बनाना चाहिए । का आउटपुट क्या है ldd build-script-build?
कामिल मैकियोरोस्की
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.