linux-源碼的編譯安裝和卸載

正常的編譯安裝/卸載:

源碼的安裝通常由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)。html

configure文件是一個可執行的腳本文件,它有不少選項,在待安裝的源碼目錄下使用命令./configure –help能夠輸出詳細的選項列表。 node

其中--prefix選項是配置安裝目錄,若是不配置該選項,安裝後可執行文件默認放在/usr /local/bin,庫文件默認放在/usr/local/lib,配置文件默認放在/usr/local/etc,其它的資源文件放在/usr /local/share,比較凌亂。工具

若是配置了--prefix,如:測試

$ ./configure --prefix=/usr/local/test

 安裝後的全部資源文件都會被放在/usr/local/test目錄中,不會分散到其餘目錄。操作系統

使用--prefix選項的另外一個好處是方便卸載軟件或移植軟件;當某個安裝的軟件再也不須要時,只須簡單的刪除該安裝目錄,就能夠把軟件卸載得乾乾淨淨;而移植軟件只需拷貝整個目錄到另一個機器便可(相同的操做系統下)。code

固然要卸載程序,也能夠在原來的make目錄下用一次make uninstall,但前提是Makefile文件有uninstall命令(nodejs的源碼包裏有uninstall命令,測試版本v0.10.35)。htm

make install PREFIX=path

這裏PREFIX必須大寫,其實絕大部分狀況下 make install 都不能再指定 PREFIX 了,
由於大部分程序都會 configure 時獲得的 prefix 寫入 config.h,
而後在編譯時編譯到可執行文件內部,
以便在執行時讀取資源文件等。
這樣在編譯完畢後,
就不能再修改 prefix 了。
只有運行時不須要資源文件的小工具,
纔可能在安裝的時候隨意選擇 PREFIX,
或者具備 loader 的大程序,
在執行時經過 loader 傳入路徑……

參考百度知道blog

關於卸載:

若是沒有配置--prefix選項,源碼包也沒有提供make uninstall,則能夠經過如下方式能夠完整卸載:資源

一個臨時目錄從新安裝一遍,如:
$ ./configure --prefix=/tmp/to_remove && make installrem

而後遍歷/tmp/to_remove的文件,刪除對應安裝位置的文件便可(由於/tmp/to_remove裏的目錄結構就是沒有配置--prefix選項時的目錄結構)。

原文地址

相關文章
相關標籤/搜索