2016-10-24 6 views
0

Всякий раз, когда я пытаюсь следовать 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) 

Я новичок в командной строке, и у меня есть идея, что это значит или почему это не позволит мне устанавливать рельсы. Может ли кто-нибудь помочь?

Я также должен добавить, когда я пытаюсь проверить версию рубина, она дает мне правильную версию. Но когда я пытаюсь проверить рельсы, я получаю.

C:\Sites>rails -v 
The system cannot find the path specified. 

UPDATE

При использовании Windows 10

Рубин версия 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) 

Когда я иду к конфигурации рельсы окружения я заметил, это не показывает номер версии рельсам, но показывает файл битой.

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: 
+0

Какой ОС вы используете? Какую версию рубина вы используете? – Brian

+0

Вы находитесь за брандмауэром, который останавливает вас, чтобы посетить https://rubygems.org/? – lulalala

+0

Откуда вы пытаетесь установить рельсы? Главная или корпоративная сеть? – Nurjan

ответ

0

Это для исправления ошибок 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), а затем камень установить рельсы

+0

В этом списке Ruby2.0.0/ssl_certs /, но я использую ruby2.2.0 и я не вижу папку с именем ssl_certs. Сделаю ли я его? –

+0

создайте папку ssl_certs внутри вашего Ruby2.2.0 и измените переменную среды соответственно – user2301346

0

Вы можете следить как шаги ниже:

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

Спасибо. Это отлично поработало. –

+0

Nevermind. Поэтому он установил его, но теперь я получаю ту же ошибку, когда я делаю что-то еще, и предупреждает меня, что я могу подвергнуться атаке MITM .... –

0

В качестве временного решения можно попробовать заменить в вашем Gemfile

source 'https://rubygems.org' 

с

source 'http://rubygems.org' 

так, что Ошибка соединения SSL. Этот фрагмент кода находится в верхней части вашего Gemfile

Примечание. Вы получаете предупреждение о нападении MITM (человек в середине), поскольку используете HTTP, а не HTTPS (который зашифрован). Это должно быть хорошо, это всего лишь предупреждение и вряд ли произойдет какая-либо фактическая атака. Чтобы избавиться от этого предупреждения, выполните действия Here

Или, вы можете просто запустить gem sources -a http://rubygems.org так, что ваши драгоценные камни (в том числе рельсов 5.0.0.1 гема) загружаются через HTTP, а не HTTPS

Хотя, если вы хотите использовать зашифрованную загрузку через SSL, следуйте this guide на GitHub, что приведет вас к процессу установки сертификата, чтобы доверять RubyGems.орг

0

Поэтому я сделал следующее и исправил проблему (по-видимому)

для Windows с установленной PowerShell

Установка Windows PowerShell

Вставьте этот 1Line код в командной консоли: (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

Смежные вопросы