碼的安裝一般由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庫!
4、
Make:編譯程序。
在編譯的時候,
gcc個版本之間存在着差異,所以有時候用不同版本的
gcc去編譯,有的版本能編譯成功,有的就編譯失敗,這樣的錯誤只是版本問題。
另外在
make的時候會出現的另一個錯就是比較難辦的,遇到這樣的問題就只能憑經驗查找原因,比如說某個頭文件沒有找到,這個時候就要順着出錯的位置一行一行的往上找,比如顯示
XXXXXX.h………no such file or directory,說明缺少頭文件,或者找到你覺得有價值的錯誤信息去搜索引擎里搜索,從這里可能會找到對你有用的信息,最重要的就是在安裝之前仔細的去看
README、
INSTALL文件,這兩個文件里會告訴你程序應該怎樣去安裝,需要什么依賴文件等等。
有的時候在編譯時不知道是否編譯成功,而在沒有編譯成功就去
make install肯定會出錯,這樣就增加了問題的復雜性,俗話說的好“道高一尺魔高一丈”,這樣我們可以在
make結束的時候通過一條命令來檢查是否成功編譯:
echo $?
輸入這條命令回車后,輸出的結果是0,那么就說明成功編譯,否則就是出錯了,echo $?表示檢查上一條命令的退出狀態,程序正常退出返回0!
5、
Make install:安裝文件!
它也從
Makefile中讀取指令,然后安裝到指定的位置。
其實
./configure、
make、
make install這三個命令,我們可以用
&&來把命令連接起來執行,表示當前一條命令正常結束后,后面的命令才會執行,這個辦法很好,既節省時間,又可以防止發生錯誤。例:
./configure && make && make install
轉自--------------http://blog.51cto.com/wangqiyong/367049