Linux下正常的編譯安裝/卸載
源碼的安裝一般由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/linuxidctest
安裝后的所有資源文件都會被放在/usr/local/linuxidctest目錄中,不會分散到其他目錄。
使用--prefix選項的另一個好處是方便卸載軟件或移植軟件
- 當某個安裝的軟件不再需要時,只須簡單的刪除該安裝目錄,就可以把軟件卸載干凈;
- 移植軟件只需拷貝整個目錄到另外一個機器即可(相同的操作系統下)
當然要卸載程序,也可以在原來的make目錄下用一次make uninstall,但前提是Makefile文件有uninstall命令。
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選項時的目錄結構)。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新鏈接地址:https://www.linuxidc.com/Linux/2019-03/157703.htm
