Compiling

在滾動發行版上從原始碼建構軟體

  • March 26, 2017

在像 openSUSE Tumbleweed 這樣的滾動發布發行版上,如果想從原始碼建構一些軟體,考慮到從發行版儲存庫安裝的依賴項可能會頻繁升級,這些程序需要多久重新建構一次。

例如,如果想從原始碼建構 Apache httpd 和 Exim,這兩者都可能依賴於 PCRE 和 GnuTLS,那麼每次升級 PCRE 或 GnuTLS 或其他依賴項時是否需要重新建構 Apache httpd 和 Exim?

每次升級依賴項時,是否存在某種類型的依賴項需要從源重新建構依賴軟體?

或者只有在依賴結構發生顯著變化時才需要重建依賴軟體?

可能有很多個別的獨特案例,但有沒有一般的指導方針?

據我所知,就重新編譯事物而言,唯一“痛苦”的場景是核心更新。然後,您需要將核心本身與所有核心模組一起編譯。

與其他相對高級的包一樣,在依賴項更新的大部分時間裡,您可能不需要重新編譯它們。只有少數情況下,特定包的依賴關係發生瞭如此劇烈的變化,以至於您需要重新編譯依賴包。

大多數情況下,當這些“高級”包更新時,您需要重新編譯依賴包的唯一指標是它們是否突然停止工作。

閱讀您更新的軟體包的更改日誌也是一件好事,因為它們大多數時候會警告您其架構中的一些重大更改,儘管您可以選擇堅持使用​​目前版本以避免重新編譯所有內容。

實際上,Slackware 有slackpkgs 可以自動重新編譯一些常見包及其依賴項的過程。也沒有人禁止使用某種包管理器(apt等)來讓你的生活更輕鬆。

以下是來自 Slackware 和 Gentoo 文件的一些參考資料:

Slackware 文件 Gentoo 文件

引用自:https://unix.stackexchange.com/questions/353894