我應該用自編譯的替換 /usr/bin 中的 PHP 系統二進製文件嗎?
我在我的 Mac 10.9 機器上安裝了 PHP 5.4 版,並想升級到 5.6。
我下載了源文件並執行
./configure
了. 我看了看,好像編譯安裝成功了,但是它自己安裝到. 舊版本的 PHP 安裝在.make``make install``/usr/local/bin``/usr/bin
當我執行時
php
,使用該/usr/bin
位置,因為/usr/bin
在/usr/local/bin
.$PATH
我想使用新版本。
/usr/bin
我應該用 中的版本替換舊版本的 PHP/usr/local/bin
嗎?還是我應該完全刪除它們/usr/bin
?這有點棘手,因為 5.6 安裝還安裝了一些其他的東西,比如新版本的
perl
andpecl
和一些其他幫助程序二進製文件(包括php-config
andphpize
)。其中一些(最後兩個)已經存在於/usr/bin
文件夾中,但perl
並pecl
沒有。我應該把所有的新東西搬到/usr/bin
?最後,為什麼新的安裝
/usr/local/bin
了舊的卻沒有?區分重要嗎?PHP 團隊是否出於某種原因決定移動它?或者它只是/usr/bin
因為它是我的系統附帶的,而下載的更新被放入了/usr/local/bin
?的位置是否
php.ini
取決於其中的任何一個?
通常,
/usr
層次結構用於來自作業系統供應商/站點管理員的東西,而/usr/local
用於本地安裝的東西(例如在網路上,/usr
可能是由多台電腦共享的 NFS 掛載,而是/usr/local
本地文件系統)。這就是為什麼配置腳本通常/usr/local
預設安裝到 - 不破壞系統包。這也是原因,為什麼PATH
要在/usr/local/{bin,sbin}
之前/usr/{bin,sbin}
。要更改它,您需要做的所有事情(對於表現良好的建構系統)正在執行:
./configure --prefix=/path/to/install/to
這在很大程度上取決於舊 PHP 版本的來源。僅僅覆蓋它不是一個好主意,因為它可能會留下一些舊版本的文件(這就是為什麼使用包管理器是一個好主意TM)。因此,除非您有一種干淨的方式來解除安裝以前的版本,否則
/usr/local
可能會稍微好一些。另一種選擇是(錯誤)使用單獨的層次結構/opt
- 例如安裝到/opt/php5.6
.