linux-原始碼的編譯安裝和解除安裝

rayzz發表於2018-08-20

正常的編譯安裝/解除安裝:

原始碼的安裝一般由3個步驟組成:配置(configure)、編譯(make)、安裝(make install)。

configure檔案是一個可執行的指令碼檔案,它有很多選項,在待安裝的原始碼目錄下使用命令./configure –help可以輸出詳細的選項列表。 

其中–prefix選項是配置安裝目錄,如果不配置該選項,安裝後可執行檔案預設放在/usr /local/bin,庫檔案預設放在/usr/local/lib,配置檔案預設放在/usr/local/etc,其它的資原始檔放在/usr /local/share,比較凌亂。

如果配置了–prefix,如:

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

 安裝後的所有資原始檔都會被放在/usr/local/test目錄中,不會分散到其他目錄。

使用–prefix選項的另一個好處是方便解除安裝軟體或移植軟體;當某個安裝的軟體不再需要時,只須簡單的刪除該安裝目錄,就可以把軟體解除安裝得乾乾淨淨;而移植軟體只需拷貝整個目錄到另外一個機器即可(相同的作業系統下)。

當然要解除安裝程式,也可以在原來的make目錄下用一次make uninstall,但前提是Makefile檔案有uninstall命令(nodejs的原始碼包裡有uninstall命令,測試版本v0.10.35)。

make install PREFIX=path

這裡PREFIX必須大寫,其實絕大部分情況下 make install 都不能再指定 PREFIX 了,
因為大部分程式都會 configure 時得到的 prefix 寫入 config.h,
然後在編譯時編譯到可執行檔案內部,
以便在執行時讀取資原始檔等。
這樣在編譯完畢後,
就不能再修改 prefix 了。
只有執行時不需要資原始檔的小工具,
才可能在安裝的時候隨意選擇 PREFIX,
或者具有 loader 的大程式,
在執行時通過 loader 傳入路徑……

參考百度知道

關於解除安裝:

如果沒有配置–prefix選項,原始碼包也沒有提供make uninstall,則可以通過以下方式可以完整解除安裝:

一個臨時目錄重新安裝一遍,如:
$ ./configure –prefix=/tmp/to_remove && make install

然後遍歷/tmp/to_remove的檔案,刪除對應安裝位置的檔案即可(因為/tmp/to_remove裡的目錄結構就是沒有配置–prefix選項時的目錄結構)。

原文地址

相關文章