從原始碼建構工具/庫有什麼優勢?
通過從原始碼建構,您可以獲得任何好處嗎?程式碼是否更適合您的硬體架構?總體上是否優化得更好?
為什麼有人會選擇從原始碼建構而不是使用像 APT/yum 這樣的包管理系統?如果有某種優化收益什麼時候超過包管理系統的好處?
從原始碼建構提供了以下選項,這些選項在使用二進制包管理器的版本時不可用。
從原始碼編譯允許您:
- 使用特定於處理器的優化
- 使用最新版本
- 了解編譯和連結的工作原理(來自@mattdm 的建議)
- 修復錯誤,開發工作
- 設置編譯時選項(例如在 vim 中包含 X 特性)
我最近做了這件事。
我在 Slackware 11.0 linux 系統上從原始碼編譯了 openssl-1.0.something。我想修補密碼登錄的東西,在登錄失敗時暫停 7 秒,以緩和那些煩人的中文 ssh 密碼猜測者。
我在同一個 Slackware 11.0 系統上編譯了 Apache httpd 2.2.17,因為它帶有 Apache 2.0.something,我想使用另一個系統的 2.2.x httpd.conf。
想想看,我還為同一個系統編譯了 Alpine 2.0(電子郵件客戶端,pine 後續)。為什麼選擇 Slackware 11.0?它執行在大約 2003 年配備英特爾“Brookdale”顯卡的機器上,而任何後來的 Slackware 都不支持記錄不善的英特爾顯卡。
在另一台機器上,我從 github 上提取了 TI ACX111 無線晶片支持並編譯了一個新的驅動程序,允許我使用 9 美元的無線網卡。
我還習慣性地重新編譯 Linux 核心,使它們特定於它們執行的機器。
所以在我的情況下,這是定制、硬體支持和“僅僅因為”的各種原因。
鑑於我們對統一人群中流行病學的了解(http://www.usenix.org/publications/login/2005-12/openpdfs/geer.pdf)為什麼不是每個人都在自己的系統上從原始碼編譯,無論他們選擇的編譯時選項?這將使人們對病毒和蠕蟲具有更強的抵抗力。