天天看點

編譯安裝和軟體包安裝

Linux平台上的軟體安裝分為編譯安裝和軟體包安裝,其中軟體包安裝最為簡單,可以YUM直接安裝,也可以把RPM包下載下傳到本地再安裝,總之省時省力,另外如果你想看YUM安裝後,軟體所涉及的目錄有哪些,比如配置檔案、程式檔案都放在什麼地方,也很簡單,使用下面的指令:

<code>rpm -ql 軟體名稱</code>

如下圖:

<a href="http://s4.51cto.com/wyfs02/M00/89/0A/wKiom1gFzWiA9Ia6AADjpifbUYo235.jpg-wh_500x0-wm_3-wmp_4-s_2435408472.jpg" target="_blank"></a>

今天我們來說一下編譯安裝是什麼,為什麼要用編譯安裝。

一般我們從網上下載下傳的tar.gz的包都是源碼包,針對源碼包的軟體安裝成為編譯安裝。什麼叫編譯?簡單來說就是把源代碼變成适合目前平台的二進制檔案,讓核心可以識别。

編譯安裝的大體過程如下:運作源碼包中的config或者configure檢測程式(相信大家肯定熟悉),這個腳本一般後面都會跟一些參數,不同軟體參數會不同。這個程式就是找到所需的函數庫,編譯器和其他資料,然後會生成一個Makefile檔案,如果過程順利,你就可以運作make進行安裝,此時就Make指令就會讀取生成的Makefile檔案然後調用GCC編譯器進行編譯,然後最後通過make install指令進行安裝。有時我們會看到下面的指令使用方式:

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

這就是把兩個指令一次錄入,然後按順序執行,好處是不同等着。軟體的安裝位置、啟動的特性等都是在configure階段所指定的。具體可以使用下面指令來檢視軟體支援多少可用參數:

<code>.</code><code>/configure</code> <code>--help</code>

這裡需要說明的是:GCC其實可以直接編譯程式檔案,為什麼還需要根據makefile,這裡最直接的原因就是效率問題,一個軟體不可能隻有一個程式檔案,還有其他的所需檔案,如果用GCC逐個編譯實在太麻煩,是以用makefile比較高效。

注意事項:makefile生成以後,可以運作make test進行測試。另外如果第一次編譯失敗,第二次編譯之前(make之前,configure之後)要運作make clean指令把之前的編譯清除掉。

make clear:隻是删除make産生的檔案,它不能删除目前目錄下産生的配置檔案和build産生的檔案

make distclean:類似于make clear但是它可以删除目前目錄下産生的配置檔案和build産生的檔案

不是所有軟體都可以通過軟體包管理器安裝,尤其是新版的軟體。

      本文轉自linuxjavachen  51CTO部落格,原文連結:http://blog.51cto.com/littledevil/1863043,如需轉載請自行聯系原作者

繼續閱讀