1. 程式人生 > >Linux中伺服器軟體為什麼需要編譯安裝

Linux中伺服器軟體為什麼需要編譯安裝

為什麼伺服器軟體需要編譯安裝?一個流傳很廣的說法是編譯安裝效能更好,其實這是個謠言

伺服器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 直接下載