Ssl
/usr/lib 和 /usr/local/lib 有什麼區別?
我在 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
),那麼系統應該允許您這樣做。