問題描述
我想在 Ubuntu 12.04 係統上將 OpenSSL 升級到 1.0.1。我注意到 apt-get upgrade openssl
最終不會升級 OpenSSL。 Ubuntu 是否支持較新的 OpenSSL?
我也嘗試過從源代碼編譯。編譯工作,但我不知道如何用較新的 (1.0.1) 替換 內置 OpenSSL (1.0.0)。從源代碼編譯使我可以將新版本與舊版本一起使用 – 我需要用新版本替換舊版本。我之所以需要這種需求,是因為最新的 FreeSWITCH 源代碼與 OpenSSL 1.0.0 不兼容,而且 FreeSWITCH 中似乎沒有 make 配置將其指向新 OpenSSL 的路徑。 (所以它頑固地繼續使用舊版本並且無法工作!)
謝謝是提前。任何幫助將不勝感激。
最佳思路
注意:這個問題和答案早於 OpenSSL 錯誤 Heartbleed。
首先你需要完全刪除舊的安裝:\n(這會破壞大多數係統!小心!大多數人會後悔)\n apt-get purge openssl
你可能想通過運行來打掃房子:
apt-get autoremove && apt-get autoclean
然後你應該下載並編譯你想要的版本( full list )
wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz
次佳思路
安裝開發包!
在撰寫本文時,1.0.1 是 Ubuntu 12.04 的一部分。但是,為了對其進行編譯,您還必須安裝開發包( libssl-dev
)!
首先更新軟件包列表
sudo apt-get update
然後安裝開發包並一次性升級庫本身:
sudo apt-get install openssl libssl-dev
您可以在這裏看到 1.0.1 是 12.04 的一部分:http://packages.ubuntu.com/precise-updates/openssl
如果您的係統仍然安裝 1.0.0,則您設置了一些其他存儲庫,或者您的包管理中的其他內容被更改以導致此錯誤。在這種情況下,仍然通過運行檢查導致它固定在 1.0.0 上的原因
apt-cache policy openssl libssl-dev
第三種思路
嘗試從 http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/ 下載最新版本的 libssl
和 openssl
並安裝兩者。
警告:這將破壞 OpenSSL 的自動安全更新。