2017-06-01 99 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