從原始碼建置另一個專案時,是否需要從原始程式碼建置所有依賴項?

從原始碼建置另一個專案時,是否需要從原始程式碼建置所有依賴項?

我的發行版的軟體包儲存庫沒有我想要的當前版本的 tmux 軟體包。我tar.gz從網站上下載了最新版本的格式。然而,在嘗試./configure這樣做時,configure 告訴我它需要其他依賴項。我的問題是,從來源手動建立這些依賴項是否是最佳實踐?如果我要使用分發套件管理器下載這些依賴項,是否有可能他們也是是否會過時,並且存在比當前 tmux 所需的更舊的依賴項?

在這種特殊情況下,我嘗試tmux在 Ubuntu 18.04.4 LTS 上建置 3.0a,但它告訴我不存在的軟體包稱為libevent

答案1

假設您需要 libevent 版本 42.1。

如果您的套件管理器有 libevent 版本 42.5,請繼續安裝它。無需從源代碼構建它。若要使用libevent建置軟體,您需要安裝對應的開發套件; libevent-dev 在基於 .deb 的發行版上,libevent-devel 在基於 RPM 的發行版上。

如果您的套件管理器只有 libevent 版本 40.3,那麼您還需要從原始程式碼(從高於 42.1 的版本)建置 libevent。

建議:安裝您從原始程式碼建置的所有內容/usr/localPREFIX在執行之前設置./configure,或如果此套件的做法不同,請閱讀文件)。這樣,您自己建置的內容和套件管理器安裝的內容就不會發生衝突。我stow也用這個,所以我可以保留幾個版本。

它們是否有可能也會過時

當然「有機會」。找出答案的唯一方法是去你的套件管理器看看。如果上游存在更新的版本,這可能是將您的套件管理器指向更新版本的好機會。

相關內容