मैं एक निमस्क चल रहे एक VM पर वर्तमान ओरेकल jre स्थापित करने की कोशिश की।
अब निम्नलिखित होता है:
[michas@cc:~]$ tar xvzf jre-7u40-linux-x64.tar.gz |grep bin/java
jre1.7.0_40/bin/javaws
jre1.7.0_40/bin/java_vm
jre1.7.0_40/bin/java
[michas@cc:~]$ ls -l ./jre1.7.0_40/bin/java
-rwxr-xr-x 1 michas nogroup 7750 Aug 27 09:17 ./jre1.7.0_40/bin/java
[michas@cc:~]$ ./jre1.7.0_40/bin/java
bash: ./jre1.7.0_40/bin/java: No such file or directory
WTF? नामित फ़ाइल स्पष्ट रूप से वहाँ है। क्या हो रहा है?
आगे का विश्लेषण करने की कोशिश कर रहा है:
[michas@cc:~]$ strace ./jre1.7.0_40/bin/java
execve("./jre1.7.0_40/bin/java", ["./jre1.7.0_40/bin/java"], [/* 53 vars */]) = -1 ENOENT (No such file or directory)
write(2, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
exit_group(1) = ?
+++ exited with 1 +++
[michas@cc:~]$ strace ./jre1.7.0_40/bin/jav
strace: Can't stat './jre1.7.0_40/bin/jav': No such file or directory
ठीक है, एक बहुत ही गायब फ़ाइल का आउटपुट अलग दिखता है।
[michas@cc:~]$ file ./jre1.7.0_40/bin/java
./jre1.7.0_40/bin/java: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, BuildID[sha1]=a558f547fe0b95fdc6a109cb7d9692d6d7969794, not stripped
[michas@cc:~]$ file ~/t
/home/michas/t: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped
उत्तरार्द्ध समस्याओं के बिना चलने वाला एक छोटा स्व संकलित बाइनरी है। दोनों बहुत समान दिखते हैं। इसलिए बाइनरी को प्रारूपित करना ठीक प्रतीत होता है।
[michas@cc:~]$ ldd ./jre1.7.0_40/bin/java
/run/current-system/sw/bin/ldd: line 116: ./jre1.7.0_40/bin/java: No such file or directory
लगता है कि आवश्यक साझा पुस्तकालयों के बारे में एक समस्या है।
क्या चल रहा है और मैं इसे कैसे ठीक कर सकता हूं?