为什么我不能安装导轨?

时间:2016-10-24 02:53:40

标签: ruby-on-rails git-bash

每当我尝试关注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的版本时,它会给我正确的版本。但是当我尝试检查导轨时,我得到了。

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:

4 个答案:

答案 0 :(得分:0)

您可以按照以下步骤操作:

1. gem sources -a http://rubygems.org
2. gem install rails

答案 1 :(得分:0)

作为一种解决方法,您可以尝试在Gemfile中替换

source 'https://rubygems.org'

source 'http://rubygems.org'

以便SSL连接错误消失。这段代码位于Gemfile的顶部

注意 - 您正在获取MITM(中间人)攻击警告,因为您使用的是HTTP,而不是HTTPS(已加密)。这应该没问题,只是一个警告,不太可能发生任何实际的攻击。要摆脱此警告,请按照Here

步骤操作

或者,您只需运行gem sources -a http://rubygems.org即可通过http而不是https

下载您的宝石(包括rails 5.0.0.1 gem)

虽然,如果您想通过SSL使用加密下载,请按照GitHub上的this guide引导您完成安装证书以信任RubyGems.org的过程

答案 2 :(得分:0)

这是用于修复windows中的ssl错误 1)下载certificate
2)将其保存到// An array with all the colors you want let colors = [UIColor.redColor(),UIColor.blueColor(),UIColor.greenColor()] // An integer to keep track of the current color var actualIndex = 0 var myShapeNode : SKShapeNode! override func didMoveToView(view: SKView) { super.didMoveToView(view) myShapeNode = SKShapeNode(circleOfRadius: 50) myShapeNode.position = CGPointMake(size.width/2, size.height/2) addChild(myShapeNode) myShapeNode.strokeColor = colors[actualIndex] myShapeNode.fillColor = colors[actualIndex] } override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { super.touchesBegan(touches, withEvent: event) actualIndex = (actualIndex+1)%colors.count //Goes back to 0 when reaches colors.count myShapeNode.strokeColor = colors[actualIndex] myShapeNode.fillColor = colors[actualIndex] }
3)创建环境变量C:/RailsInstaller/Ruby2.0.0/ssl_certs/GlobalSignRootCA.pem将其设置为SSL_CERT_FILE 4)然后宝石安装导轨

答案 3 :(得分:0)

所以我做了以下内容并修复了问题(貌似)

安装了PowerShell的Windows的

安装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')}"

脚本可以:

  1. 下载http://curl.haxx.se/ca/cacert.pem

  2. 将其另存为%USERPROFILE%/cacert.pem ( C:\Users\__you__\cacert.pem)

  3. 将当前用户SSL_CERT_FILE的持久性环境变量设置为%USERPROFILE%/cacert.pem