CentOS ./configure && make && make install詳解


碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)。

 

Linux中利用源碼包安裝軟件最重要的就是要仔細閱讀安裝包當中的README  INSTALL兩個說明文件,這兩個文件會清楚的告訴你如何可以正確的完成這個軟件的安裝!
         我們都知道源碼包安裝分為這么幾個階段,
1、   Tar:解壓這個源碼軟件包。
2、   Cd:進入到這個源碼包。
3、   ./configure:“configure”會在你的系統上測試存在的特性(或者bug!)然后來建立Makefile文件來完成make
4、   Make:編譯程序。
5、   Make install:安裝文件!
 
以上五步就是源碼包安裝軟件的步驟,每一步不成功,則下一步就沒法去完成!下面我們就找個軟件來安裝,並且一步一步來解釋一下!
 
1、   Tar:解壓這個源碼軟件包。
 
2、 cd:進入到這個源碼包。
 
3、   ./configure:“configure”會在你的系統上測試存在的特性(或者bug!)然后來建立 Makefile文件來完成 make
 
“configure”腳本有大量的命令行選項,對不同的軟件包來說,這些選項可能會有變化,但是許多基本的選項是不會改變的。而我們用的最多的也就是下面這條命令:
./configure --prefix=/軟件要安裝的路徑
但是我們也可以直接./configure而不指定路徑,通常通過從源碼包編譯安裝的軟件默認路徑都是/usr/local/,如果./configure不成功而直接去make的話,就會出現下圖的錯誤:
 當我們解決完./configure的錯誤,然后重新./configure成功后,我們就可以編譯程序了!
再說幾個能關系到能否編譯成功的文件:/etc/ld.so.conf、ldconfig
首先說一下/etc/ld.so.conf,這個文件中記錄的編譯時使用的動態鏈接庫的路徑,默認情況下編譯器只會使用/lib和/usr/lib這兩個目錄下的庫文件,如果你安裝了其他的庫,那么安裝完成后就在/etc/ld.so.conf把這個庫文件中的絕對路徑寫進去就OK了。
再來看看ldconfig是個什么東西吧:
他是一個程序,它的作用就是將/etc/ld.so.conf中的路徑緩存到/etc/ld.so.cache中,因此在安裝完一些庫文件或者修改ld.so.conf增加新的路徑后需要運行一下/sbin/ldconfig使所有的庫文件都緩存都ld.so.cache中,如果沒有運行/sbin/ldconfig,即使庫文件就在/etc/ld.so.conf中,也是不會被使用的,結果在編譯的過程中同樣報錯缺少XXX庫!
 
4Make:編譯程序。
 
在編譯的時候, gcc個版本之間存在着差異,所以有時候用不同版本的 gcc去編譯,有的版本能編譯成功,有的就編譯失敗,這樣的錯誤只是版本問題。
另外在 make的時候會出現的另一個錯就是比較難辦的,遇到這樣的問題就只能憑經驗查找原因,比如說某個頭文件沒有找到,這個時候就要順着出錯的位置一行一行的往上找,比如顯示 XXXXXX.h………no such file or directory,說明缺少頭文件,或者找到你覺得有價值的錯誤信息去搜索引擎里搜索,從這里可能會找到對你有用的信息,最重要的就是在安裝之前仔細的去看 READMEINSTALL文件,這兩個文件里會告訴你程序應該怎樣去安裝,需要什么依賴文件等等。
有的時候在編譯時不知道是否編譯成功,而在沒有編譯成功就去 make  install肯定會出錯,這樣就增加了問題的復雜性,俗話說的好“道高一尺魔高一丈”,這樣我們可以在 make結束的時候通過一條命令來檢查是否成功編譯: echo  $?
輸入這條命令回車后,輸出的結果是0,那么就說明成功編譯,否則就是出錯了,echo  $?表示檢查上一條命令的退出狀態,程序正常退出返回0!
 
5、   Make install:安裝文件!
 
它也從 Makefile中讀取指令,然后安裝到指定的位置。
其實 ./configuremakemake  install這三個命令,我們可以用 &&來把命令連接起來執行,表示當前一條命令正常結束后,后面的命令才會執行,這個辦法很好,既節省時間,又可以防止發生錯誤。例:
./configure  &&  make  &&  make  install
 
 
轉自--------------http://blog.51cto.com/wangqiyong/367049


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM