Linux運行程序錯誤的解決方法
linux是一個開源的免費的操作系統,可能接觸linux系統的用戶沒有windows系統的用戶多,但是其功能和界面卻完全不遜于windows系統。下面是教大家解決Linux運行程序錯誤的方法,具體內容如下所述。
現象:
本機安裝的是Linux;運行32位的apache; 錯誤提示:Nosuchfileordirectory
解決過程:
首先我查看次二進制程序是否是unix/linux版本的:
- filefilename:httpd:setuidELF32-bitLSBexecutable,Intel80386,version1(SYSV),dynamicallylinked(usessharedlibs),forGNU/Linux2.2.5,notstripped
由此可見此程序是32位可執行linux程序;
第二步查看操作系統版本:
- uname-a:Linuxubuntu2.6.35-22-generic#33-UbuntuSMPSunSep1920:32:27UTC2010x86_64GNU/Linux
可見安裝的內核是64位的linux;
那么可以定位問題為32位的可執行程序不能在64位內核上運行的的問題;但是我只到64為內核是可以運行32為的程序的,可能是缺少一些32位的動態庫吧。于是google了下,發現果然是缺少ia32-libs這個包;于是apt-getinstallia32-lib安裝這個包;
問題解決;
總結:我們知道一個可執行二進制程序文件頭都是有一個魔數的,比如linuxc程序的都有ELF魔數;現如今linux環境在加載可執行程序時,可以動態根據不同的魔數,加載java,ruby,python,awk,go,等等語言的執行器來執行程序;
同樣一個技巧,有時候我們運行一個程序時會報缺少動態鏈接庫的問題,我們先oddfilename;可以知道缺少的庫;
總結:
Linux運行程序錯誤的解決方法希望能夠對大家有所幫助,更多有關linux系統的知識還有待于讀者去探索和學習。