天天看點

Linux系統源碼安裝過程中的prefix選項

在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 檔案有充分的了解 

繼續閱讀