Debian
如何從 /usr/local 強制使用 OpenSSL
我有一台帶有 64 位 ARM CPU 和 AES 指令集的單板電腦。所提供的 Debian 8 Jessie Mate Desktop 映像使用 OpenSSL 1.0.1k 建構,無法使用該加速。
我已經從啟用了加速的原始碼建構了 OpenSSL 1.0.2n,並將其安裝到 /usr/local。
這個答案解釋瞭如何從命令行訪問它,它工作正常,但我如何強制所有程序和守護程序使用這個 /usr/local 版本?
由於依賴關係(= 無符號連結),無法解除安裝原始 OpenSSL 包。那麼將這兩者共存並使用 /usr/local 中的一個的正確方法是什麼?
注意:我知道我有責任保持更新 /usr/local OpenSSL。
您確定應用程序尚未使用它嗎?如果您檢查 的輸出
ldconfig -v
,輸出中首先顯示的是哪個 OpenSSL 庫?預設情況下,基於 Debian 的系統(我相信大多數其他遵循 FHS 的 Linux 系統)
/usr/local/lib
在搜尋/usr/lib
. 這意味著您在安裝自己的自定義版本後啟動的任何使用 OpenSSL 的應用程序都應該在/usr/lib
.
ldd
您可以通過使用與 OpenSSL 連結的二進製文件來確認這一點。例如:$ ldd /usr/sbin/nginx ... libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 (0x00007fd50f80b000) ...
請注意 - 這是它將使用的版本的路徑
libssl
,即使系統上有多個副本。如果您的OpenSSL自定義版本位於下面的目錄中(例如
/usr/local/lib
)/usr/local/lib/ssl
,並且您發現它沒有被它顯示定義的搜尋路徑中所有庫的名稱)。ld``/etc/ld.so.conf.d``ldconfig``-v