https://www.cnblogs.com/dsc65749924/p/5852177.html
其實
./configure、make、make install這三個命令,我們可以用&&來把命令連接起來執行,表示當前一條命令正常結束后,后面的命令才會執行,這個辦法很好,既節省時間,又可以防止發生錯誤。例:
./configure && make && make install
正常的編譯安裝/卸載:
源碼的安裝一般由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)。
關於卸載:
如果沒有配置--prefix選項,源碼包也沒有提供make uninstall,則可以通過以下方式可以完整卸載:
找一個臨時目錄重新安裝一遍,如:
$ ./configure --prefix=/tmp/to_remove && make install
$ ./configure --prefix=/tmp/to_remove && make install
然后遍歷/tmp/to_remove的文件,刪除對應安裝位置的文件即可(因為/tmp/to_remove里的目錄結構就是沒有配置--prefix選項時的目錄結構)。
-------------------------------------------------------
錯誤:
NOTICE: PHP message: PHP Warning: PHP Startup: mcrypt: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20121212
當服務器中安裝了2個以上的php環境時會出現以上錯誤,這是由於phpize編譯的版本不一致
所以安裝擴展的時候 一定要
/usr/local/php/bin/phpize #寫全phpize的路徑 ./configure --with-php-config=/usr/local/php/bin/php-config #配置時 要將php-config的路徑附上 make && make install
這樣就不會出現以上錯誤了。
錯誤:
NOTICE: PHP message: PHP Warning: PHP Startup: mcrypt: Unable to initialize module
Module compiled with module API=20090626
PHP compiled with module API=20121212
當服務器中安裝了2個以上的php環境時會出現以上錯誤,這是由於phpize編譯的版本不一致
所以安裝擴展的時候 一定要
/usr/local/php/bin/phpize #寫全phpize的路徑 ./configure --with-php-config=/usr/local/php/bin/php-config #配置時 要將php-config的路徑附上 make && make install
這樣就不會出現以上錯誤了