在linux和unix環境中,源碼安裝是最常用的軟體安裝方式,一些軟體除了提供源碼外,也提供各種發行版的二進制安裝包(如基于redhat包管理工具的rpm包),但強烈建議使用源碼安裝方式。原因是:(1)沒有類似rpm那樣讓人惱 火的包依賴關系,(2)源碼安裝靈活自由,适用于不同的平台,維護也十分友善。
源碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install),具體的安裝方法一般作者都會給出文檔,這裡主要讨論配置(configure)。Configure是個可執行腳本,他有很多選項,使 用指令./configure –help輸出周詳的選項清單,如下:
-bash-3.00# ./configure --help
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
--help print this message
--no-create do not create output files
--quiet, --silent do not print `checking...' messages
--version print the version of autoconf that created configure
Directory and file names:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[same as prefix]
--bindir=DIR user executables in DIR [EPREFIX/bin]
……….(省略若幹)
很多的選項,個人認為,您能夠忽略其他的一切,但請把—prefix加上。這裡以安裝supersparrow-0.0.0為例,我們打算把他安裝 到目錄 /usr/local/supersparrow,于是在supersparrow-0.0.0目錄執行帶選項的腳本./configure –prefix=/usr/local/supersparrow,執行成功後再編譯、安裝(make,make install);安裝完成将自動生成目錄supersparrow,而且該軟體任何的文檔都被複制到這個目錄。
為什麼要指定這個安裝目錄?是為了以後的 維護友善,假如沒有用這個選項,安裝過程結束後,該軟體所需的軟體被複制到不同的系統目錄下,很難弄清楚到底複制了那些文檔、都複制到哪裡去了—基本上是 一塌糊塗。
用了—prefix選項的另一個好處是解除安裝軟體或移植軟體。當某個安裝的軟體不再需要時,隻須簡單的删除該安裝目錄,就能夠把軟體解除安裝得幹幹淨淨;移植軟體隻需拷貝整個目錄到另外一個機器即可(相同的作業系統)。
一個小選項有這麼友善的作用,建議在實際工作中多多使用。
./configure && make && make install 安裝三步曲到底發生了什麼呢?
用一句話來解釋這個過程就是:
1、根據源碼包中 Makefile.in 檔案的訓示,configure 腳本檢查目前的系統環境和配置選項,在目前目錄中生成 Makefile
檔案(還有其它本文無需關心的檔案),
2、然後 make 程式就按照目前目錄中的 Makefile
檔案的訓示将源代碼編譯為二進制檔案,最後将這些二進制檔案移動(即安裝)到指定的地方(仍然按照 Makefile 檔案的訓示)。
由此可見 Makefile 檔案是幕後的核心。要深入了解安裝過程,必須首先對 Makefile 檔案有充分的了解