为什么我无法安装 rails?
Why can't I install rails?
每当我尝试遵循 this 时,在第 6 步我输入代码但不会安装,它只会在命令行中告诉我以下内容。
Could not find a valid gem 'rails' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
我是命令行的新手,我完全不知道这意味着什么或为什么它不允许我安装 rails。有人可以帮忙吗?
我还应该添加,当我尝试检查 ruby 的版本时,它会给我正确的版本。但是当我尝试检查 rails 时,我得到了。
C:\Sites>rails -v
The system cannot find the path specified.
更新
使用 Windows 10
Ruby 版本 2.2.4
我不知道如何判断防火墙是否阻止了我
使用家庭网络
我刚刚尝试 运行 这个:
C:\Sites>gem update --system
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
和
C:\Sites>gem install rails
ERROR: Could not find a valid gem 'rails' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
当我转到 rails 环境配置时,我注意到它没有显示 rails 的版本号,而是显示了一个 bat 文件。
ruby:
bin: C:/RailsInstaller/Ruby2.0.0/bin/ruby.exe
version: ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
rails:
bin: C:/RailsInstaller/Ruby2.0.0/bin/rails.bat
version:
您可以按照以下步骤操作:
1. gem sources -a http://rubygems.org
2. gem install rails
作为解决方法,您可以尝试在 Gemfile 中替换
source 'https://rubygems.org'
与
source 'http://rubygems.org'
这样 SSL 连接错误就消失了。这段代码位于 Gemfile
的顶部
注意 - 您收到 MITM(中间人)攻击警告,因为您使用的是 HTTP,而不是 HTTPS(已加密)。这应该没问题,这只是一个警告,不太可能发生任何实际攻击。要消除此警告,请按照步骤 Here
或者,您可以简单地 运行 gem sources -a http://rubygems.org
以便您的 gem(包括 rails 5.0.0.1 gem)通过 http 下载而不是 https
尽管如此,如果您想通过 SSL 使用加密下载,请按照 GitHub 上的 this guide 引导您完成安装证书的过程以信任 RubyGems.org
这是为了修复 windows
中的 ssl 错误
1) 下载 certificate
2) 保存到 C:/RailsInstaller/Ruby2.0.0/ssl_certs/GlobalSignRootCA.pem
3) 创建环境变量 SSL_CERT_FILE
将其设置为 C:/RailsInstaller/Ruby2.0.0/ssl_certs/GlobalSignRootCA.pem
4) 然后 gem 安装 rails
所以我做了以下并解决了问题(貌似)
对于 Windows 安装了 PowerShell
正在安装 Windows PowerShell
将这 1 行代码粘贴到命令控制台:(WIN + R, cmd)
powershell -Command "& {$fname='cacert.pem'; $outpath=\"$($(Get-ChildItem Env:USERPROFILE).Value)/$fname\"; Invoke-WebRequest http://curl.haxx.se/ca/$fname -OutFile \"$outpath\"; [Environment]::SetEnvironmentVariable('SSL_CERT_FILE', \"$outpath\", 'User')}"
脚本可以做到:
另存为%USERPROFILE%/cacert.pem ( C:\Users\__you__\cacert.pem)
将当前用户 SSL_CERT_FILE
的永久环境变量设置为 %USERPROFILE%/cacert.pem
每当我尝试遵循 this 时,在第 6 步我输入代码但不会安装,它只会在命令行中告诉我以下内容。
Could not find a valid gem 'rails' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
我是命令行的新手,我完全不知道这意味着什么或为什么它不允许我安装 rails。有人可以帮忙吗?
我还应该添加,当我尝试检查 ruby 的版本时,它会给我正确的版本。但是当我尝试检查 rails 时,我得到了。
C:\Sites>rails -v
The system cannot find the path specified.
更新
使用 Windows 10
Ruby 版本 2.2.4
我不知道如何判断防火墙是否阻止了我
使用家庭网络
我刚刚尝试 运行 这个:
C:\Sites>gem update --system
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
和
C:\Sites>gem install rails
ERROR: Could not find a valid gem 'rails' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
当我转到 rails 环境配置时,我注意到它没有显示 rails 的版本号,而是显示了一个 bat 文件。
ruby:
bin: C:/RailsInstaller/Ruby2.0.0/bin/ruby.exe
version: ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
rails:
bin: C:/RailsInstaller/Ruby2.0.0/bin/rails.bat
version:
您可以按照以下步骤操作:
1. gem sources -a http://rubygems.org
2. gem install rails
作为解决方法,您可以尝试在 Gemfile 中替换
source 'https://rubygems.org'
与
source 'http://rubygems.org'
这样 SSL 连接错误就消失了。这段代码位于 Gemfile
的顶部注意 - 您收到 MITM(中间人)攻击警告,因为您使用的是 HTTP,而不是 HTTPS(已加密)。这应该没问题,这只是一个警告,不太可能发生任何实际攻击。要消除此警告,请按照步骤 Here
或者,您可以简单地 运行 gem sources -a http://rubygems.org
以便您的 gem(包括 rails 5.0.0.1 gem)通过 http 下载而不是 https
尽管如此,如果您想通过 SSL 使用加密下载,请按照 GitHub 上的 this guide 引导您完成安装证书的过程以信任 RubyGems.org
这是为了修复 windows
中的 ssl 错误
1) 下载 certificate
2) 保存到 C:/RailsInstaller/Ruby2.0.0/ssl_certs/GlobalSignRootCA.pem
3) 创建环境变量 SSL_CERT_FILE
将其设置为 C:/RailsInstaller/Ruby2.0.0/ssl_certs/GlobalSignRootCA.pem
4) 然后 gem 安装 rails
所以我做了以下并解决了问题(貌似)
对于 Windows 安装了 PowerShell
正在安装 Windows PowerShell
将这 1 行代码粘贴到命令控制台:(WIN + R, cmd)
powershell -Command "& {$fname='cacert.pem'; $outpath=\"$($(Get-ChildItem Env:USERPROFILE).Value)/$fname\"; Invoke-WebRequest http://curl.haxx.se/ca/$fname -OutFile \"$outpath\"; [Environment]::SetEnvironmentVariable('SSL_CERT_FILE', \"$outpath\", 'User')}"
脚本可以做到:
另存为
%USERPROFILE%/cacert.pem ( C:\Users\__you__\cacert.pem)
将当前用户
SSL_CERT_FILE
的永久环境变量设置为%USERPROFILE%/cacert.pem