為什么服務器軟件需要編譯安裝?一個流傳很廣的說法是編譯安裝性能更好,其實這是個謠言
服務器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 直接下載