Jer*_*ome 4 openssl rbenv ruby-on-rails-4
使用rbenv安装ruby版本会rbenv install -l返回正确的列表.然而
$ rbenv install 2.3.4 -v
Run Code Online (Sandbox Code Playgroud)
下载失败,即使它可以通过浏览器下载.关于openssl的不正确版本的预感(由于某些遥远的记忆存在这些问题 - 过去的版本? - 在详细模式中支持):
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
Run Code Online (Sandbox Code Playgroud)
怎么克服?我可以指向rbenv使用下载的tarball吗?
原因是因为rbenv使用旧系统curl和旧系统openssl,它对协议TLS v 1.1-1.3一无所知.对我来说,使用brew 安装新版本的curl和openssl可以完成这项工作:
brew install openssl@1.1
brew install curl
Run Code Online (Sandbox Code Playgroud)
然后将已安装的curl添加到PATH(默认路径之前,即/ usr/bin),并确保实际brew版本的openssl也存在(将其添加到./bash_profile或./zshrc等):
export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"
export PATH="/usr/local/opt/curl/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
您可以确保在重新启动终端后尝试使用此程序的最新版本
which -a openssl
which -a curl
openssl version -a
curl -V
Run Code Online (Sandbox Code Playgroud)
前两个命令应该输出程序的所有路径,但顶部的命令应该是brew版本.最后两个命令应显示最新版本的程序(现在为我提供1.1.0f和7.55).现在试试
rbenv install [version]
Run Code Online (Sandbox Code Playgroud)
适用于启用SIP的MacOS Sierra.
| 归档时间: |
|
| 查看次数: |
812 次 |
| 最近记录: |