2017-06-01 128 views
3

用rbenv rbenv install -l安裝ruby版本返回正確的列表。然而,rbenv安裝不下載ruby版本

$ rbenv install 2.3.4 -v 

失敗的下載,即使它可以通過瀏覽器下載。

ruby-build: use openssl from homebrew 
/var/folders/kV/kVDOSPkcEuqSVnTjenAVRE+++TI/-Tmp-/ruby-build.20170601122915.1010 ~ Downloading ruby-2.3.4.tar.bz2... 
-> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.4.tar.bz2 
curl: (35) error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version 
error: failed to download ruby-2.3.4.tar.bz2 

如何克服:我對不正確的OpenSSL版本的預感(?由於有這些問題的一些遙遠的記憶 - - TLS版本在過去)在詳細模式支持?我可以指出rbenv使用下載的tarball嗎?

回答

6

的原因是因爲rbenv使用舊系統捲曲老系統OpenSSL的它,它一無所知協議TLS v 1.1-1.3。對我來說,安裝捲曲OpenSSL的與釀造的新版本所做的工作:

brew install [email protected] 
brew install curl 

然後裝捲曲添加到您的路徑(默認路徑,這是/ usr/bin中之前),並確保實際釀造的OpenSSL版本也有(添加到您的./bash_profile或./zshrc或等):

export PATH="/usr/local/opt/[email protected]/bin:$PATH" 
export PATH="/usr/local/opt/curl/bin:$PATH" 

可以終端的重新推出,這一方案的最新版本將通過嘗試使用後確保

which -a openssl 
which -a curl 
openssl version -a 
curl -V 

前兩個命令應該輸出所有程序的路徑,但最重要的應該是brew版本。最後兩個命令應該顯示最新版本的程序(現在我爲1.1.0f和7.55)。 現在嘗試

rbenv install [version] 

在啓用了SIP的MacOS Sierra上工作。

+0

也適用於MacOs Mavericks。 – Jerome

+0

然而,El Cap的很好的答案 - 仍然不會使用新的捲曲版本。必須去usr/bin並刪除curl。 –

+1

@TimJoyce,嗯,我無法想象一些事情,這可能是原因。也因爲你仍然在使用El Cap的原因:) – SkipIntro