爲何服務器軟件須要編譯安裝?一個流傳很廣的說法是編譯安裝性能更好,這是個謠言
服務器CPU事實已經被Intel壟斷了,就那麼幾種型號,編來編去生成的機器碼是同樣的。Intel宣傳本身的編譯工具Intel C++ Compiler 比GCC編譯出來性能要提高10%-20%,這就是一廣告,生產環境不多用人用它,況且它還要收費。
性能真不是問題,好比 strip 命令能夠大大減少可執行文件的size,可是我裝過幾千遍軟件,都沒有見有人在安裝腳本里面使用。
軟件須要編譯安裝的真實理由有以下3點:
1)軟件在編譯期間須要配置,好比說nginx,須要在編譯的時候指定包含哪些module,php,apache 也是同樣。一樣的是數據庫,mysql 經過編譯安裝,由於要定製存儲引擎(是否支持innodb .. ),而sqlite卻絕少有人編譯,都是直接下載二進制文件來用。
2)軟件須要統一安裝路徑,每一個team都會本身的安裝目錄約定,有些喜歡裝在 /opt/下面,有些喜歡裝在 /usr/local/ ,編譯安裝能夠方便的指定這些路徑(configure --prefix=xxx )
3)須要最新的版本,軟件倉庫的版本通常都比較低,這個理由其實不充分,生產環境傾向保守,不追求最新版本,可是對於geek來講,這多是最重要的緣由
弄明白緣由以後,就很容易判斷編譯仍是下載:
nginx/apache/php/mysql 編譯安裝
python/ruby/java 直接下載
php