[Linux] 讓某隻程式暫時使用某特定版本的 openssl
最近專案遇到了 openssl 的問題,
因為懷疑是 openssl-1.0.0c 的問題,因此想換成 1.0.0g 測試看看~
但是又不想全面換掉,而想先測測看只針對某隻程式換掉 openssl,
看看問題會不會因此解決~~
下面就把步驟簡單的記一下吧~
Step 1: 抓最新的 openssl
這很容易,直接上 openssl 的官網,就可以找到目前最新的 openssl。
例如:http://www.openssl.org/source/openssl-1.0.0g.tar.gz
Step 2: 將 openssl.tar.gz 解開
tar zxvf openssl-1.0.0g.tar.gz
Step 3: 設定 openssl
cd openssl-1.0.0g
./config –shared
Step 4: 開始編譯 openssl
make
Step 5: 將編譯好的 openssl 函式庫放在一個特定的目錄
mkdir /var/test_openssl
cp libcrypto.so.1.0.0 /var/test_openssl
cp libssl.so.1.0.0 /var/test_openssl
Step 6: 執行要跑的程式,並指定函式庫目錄,好讓他用到這個新的函式庫
env LD_LIBRARY_PATH=/var/test_openssl /usr/bin/mytestbin
Step 7: 確認 mytestbin 真的是用我們編譯出來的 openssl 在跑的
gdb /usr/bin/mytestbin $(pidof mytestbin)
看看 gdb 吐出來的訊息裡面,會寫被用到的 module 路徑,
如果是用到 /var/test_openssl/libcrypto.so.1.0.0 和 /var/test_openssl/libssl.so.1.0.0 就是成功囉~~