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