2014-03-24 52 views
2

我在嘗試安裝Tor的命令行版本。實際上我已經使用了Homebrew,但它給了我以下的通知:Tor +自制軟件和小牛OpenSSL

[notice] Your OpenSSL version seems to be 0.9.8y. We recommend 1.0.0 or later. 

所以我更新了OpenSSL。 openssl version現在產量爲1.0.1f

當我在終端中運行which openssl時,它返回/usr/local/bin/openssl。 當我在終端中運行which tor時,它返回/usr/local/bin/tor

那麼爲什麼Tor沒有看到OpenSSL的更新版本呢?

回答

0

我通過Homebrew卸載Tor並通過Homebrew重新安裝。我需要在安裝Tor之前設置我的$ PATH。這樣做解決了我的問題。

0

那麼爲什麼Tor沒有看到更新版本的OpenSSL?

的Mac OS X會做多,因爲它可以在/usr/lib加載0.9.8:

$ find /usr/ -iname libssl* 
/usr//lib/libssl.0.9.7.dylib 
/usr//lib/libssl.0.9.8.dylib 
/usr//lib/libssl.dylib 

LD_PRELOAD沒有兌現在Mac OS X(IIRC)。嘗試使用DYLD_LIBRARY_PATH。但要確保你的Tor與1.0.1鏈接,而不是0.9.8。否則,你會發現毫無意義的晦澀難懂的錯誤。


當我運行的職權範圍內的終端,它在/ usr/local/bin目錄/ TOR返回

你構建Tor自己嗎?如果你自己構建它,那麼這裏有一些關於Apple連接器的筆記。 (1)他們默默地忽略了rpath的。 (2)他們默默地忽略像-Bstatic這樣的請求。 (3)更一般地說,如果可用的話,它們總是鏈接到共享對象(即使在iOS中,您唯一想使用的是存檔)。 (4)LD_PRELOAD不受尊重。

您必須堅持鏈接到/usr/local/ssl/中的OpenSSL。我發現的最好方法是刪除-L,刪除-lssl並從makefile中刪除-lcrypto;並在/usr/local/ssl/lib/libssl.a/usr/local/ssl/lib/libcrypto.a處添加靜態歸檔的完整路徑名稱。