Ssl

/usr/lib 和 /usr/local/lib 有什麼區別?

  • July 19, 2020

我在 Void Linux 上。

我通過 Void 包管理器安裝了libressl 。它將libssl.so.48.0.1放在**/usr/lib中。使用此設置時,我遇到了錯誤,並且https**在我的應用程序中無法正常工作。

所以我從原始碼編譯了openssl-1.1並將****libssl.so.1.1複製到**/usr/local/lib然後ldconfig**。

然後我的應用程序開始正常工作。

為什麼libressl 附帶的libssl.so.48.0.1不起作用?它的版本不是比我們編譯的高嗎?

另外,為什麼**/usr/local/lib中的libssl.so.1.1會覆蓋/usr/lib中的****libssl.so.48.0.1**?因為他們都在場?

  • 對於主題中的問題:/usr/local/lib適用於您自己安裝(編譯)的庫。/usr/lib適用於您的發行版提供的庫。您可能想閱讀有關FHS的更多資訊。

  • 對於正文中的第一個問題:要知道它到底為什麼不起作用,需要更多資訊。您已經記住,較新版本的軟體/庫並不總是更好。它們可能會破壞兼容性,由於新功能而引入錯誤,…

  • 對於第二個問題:

    • 原因是系統遵循目錄中提到的順序,$LD_LIBRARY_PATH直到找到可以使用的庫。如果 var 不存在,它將使用 的內容/etc/ld.so.conf
    • 它背後的想法是系統管理員應該控制系統,而不是發行版的開發人員。如果您想使用您自己的版本(如 中的版本/usr/local/lib),那麼系統應該允許您這樣做。

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