RubyInstaller で Ruby をインストールしても、そのままでは Rubygems が使えない、という記事は Qiita でもたくさん投稿されています。
- Ruby - bundle install がこけるようになった(改訂版) - Qiita
- Windowsでgem installするとSSLエラーが出る場合の解決策 - Qiita
- RubyInstaller for Windowsでのgem installでSSL_connectエラーになる場合 - Qiita
- Ruby - 【Windows】gem updateでSSL_connect returnedエラーが起こる - Qiita
- node.jsとRubyで作るWindows向けフロントエンド開発環境 - Qiita
- 2015/2月 Windows上への最新Ruby on Rails環境の構築(トラップ解除済み) - Qiita
今日、 Pryをインストールしようと思いましたがうまくいきません|teratail という記事で
Rubyと一緒に配布されているrubygemsの証明書データ不正のようです。
証明書をダウンロードして設定するというのが正しい対処ですが、
http://book.scss.jp/code/c2/07.html の追記のように、一時的にhttpsをやめるという方法もあるようです。
との記載を見ました。
たしかにこのほうが楽にいけそうだと思いました。さらに、 Rubygems の更新は gem install rubygems-update && update_rubygems
で行えるという情報を得ました。
これならばコマンドラインだけで作業が出来るからラクだろう、と思われます。確認してみました。
Rubygems インストーラ gem をインストール(変更記事)
変更のきっかけ
元記事では gem のソースを追加して削除しましたが、 @scivola さんから
ただ,「http ソースを削除」は忘れそうでコワイです。
rubygems-update
を入れるときに
gem install rubygems-update -v 2.2.3 --source http://rubygems.org
>とすればいいんじゃないでしょうか。
とコメントを頂いたので変更しました。
## インストール作業
C:\Users\riocampos>ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [i386-mingw32]
C:\Users\riocampos>gem -v
2.2.2
C:\Users\riocampos>gem source --list
*** CURRENT SOURCES ***
Rubygems を最新版に更新するのは `gem update --system` で済むらしいのですが、残念ながら **現在の Rubygems の2.4系の Windows 版はバグがある** ため、 **2.2系を入れるべき** です。2.2系の最新版は2.2.3ですので、 `gem install rubygems-update -v 2.2.3` で入れます。その際に ` --source http://rubygems.org` で gem の http でのソースを指定します。
(とはいえ1.9.3系でのバグのようなので、2.1系インストールでは気にしなくても良いのかもしれませんが。)
C:\Users\riocampos>gem install rubygems-update -v 2.2.3 --source http://rubygems.org
Fetching: rubygems-update-2.2.3.gem (100%)
Successfully installed rubygems-update-2.2.3
Parsing documentation for rubygems-update-2.2.3
Installing ri documentation for rubygems-update-2.2.3
Done installing documentation for rubygems-update after 0 seconds
WARNING: Unable to pull 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)
1 gem installed
エラー出てますけど、 gem 自身はインストール出来たので良しとします。
(変更ここまで)
## Rubygems インストーラ gem を実行
Rubygems は `update_rubygems` でインストールします。
C:\Users\riocampos>update_rubygems
RubyGems 2.2.3 installed
Parsing documentation for rubygems-2.2.3
Installing ri documentation for rubygems-2.2.3
=== 2.2.2 / 2014-02-05
:
(長々と Change Log が出力される)
:
バージョン確認します。
C:\Users\riocampos>gem -v
2.2.3
更新されています。
# gem 動作確認
pry gem をインストールしてみます。
C:\Users\riocampos>gem install pry
Fetching: coderay-1.1.0.gem (100%)
Successfully installed coderay-1.1.0
Fetching: slop-3.6.0.gem (100%)
Successfully installed slop-3.6.0
Fetching: method_source-0.8.2.gem (100%)
Successfully installed method_source-0.8.2
Fetching: win32console-1.3.2-x86-mingw32.gem (100%)
Successfully installed win32console-1.3.2-x86-mingw32
Fetching: pry-0.10.1-i386-mingw32.gem (100%)
Successfully installed pry-0.10.1-x86-mingw32
invalid options: -SNw2
(invalid options are ignored)
Parsing documentation for coderay-1.1.0
Installing ri documentation for coderay-1.1.0
Parsing documentation for method_source-0.8.2
Installing ri documentation for method_source-0.8.2
Parsing documentation for pry-0.10.1-x86-mingw32
Installing ri documentation for pry-0.10.1-x86-mingw32
Parsing documentation for slop-3.6.0
Installing ri documentation for slop-3.6.0
Parsing documentation for win32console-1.3.2-x86-mingw32
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for extra/Console.rdoc, skipping
unable to convert "\xF1" from ASCII-8BIT to UTF-8 for extra/Console_ANSI.rdoc, skipping
Installing ri documentation for win32console-1.3.2-x86-mingw32
Done installing documentation for coderay, method_source, pry, slop, win32console after 13 seconds
5 gems installed
ドキュメント取得時にエラーが出てますけど、あまり気にしないw
気になるならば `--no-document` オプションを付けましょう。
C:\Users\riocampos>gem install pry --no-document
Fetching: coderay-1.1.0.gem (100%)
Successfully installed coderay-1.1.0
Fetching: slop-3.6.0.gem (100%)
Successfully installed slop-3.6.0
Fetching: method_source-0.8.2.gem (100%)
Successfully installed method_source-0.8.2
Fetching: win32console-1.3.2-x86-mingw32.gem (100%)
Successfully installed win32console-1.3.2-x86-mingw32
Fetching: pry-0.10.1-i386-mingw32.gem (100%)
Successfully installed pry-0.10.1-x86-mingw32
5 gems installed
#註記
Ruby 1.9.3/2.0系では、 [Rubygems 2.2系](https://github.com/rubygems/rubygems/issues/863)で `invalid byte sequence in UTF-8` エラーが出ます。エンコード問題のようです。
[UTF-8 環境での不具合 Cygwin - RubyGems - PIB](http://seesaawiki.jp/w/kou1okada/d/Cygwin%20-%20RubyGems)
[UTF-8 環境での不具合 Cygwin - Ruby-1.9.3p327 - win32/registry - PIB](http://seesaawiki.jp/w/kou1okada/d/Cygwin%20-%20Ruby-1.9.3p327%20-%20win32/registry#20130226-problem-on-utf8-environment)
Ruby 2.1系以降では問題ないので、2.1系を使いましょう。
もしくは、頑張って証明書を手で入れ替えましょう。
#元記事
## http ソースを追加する
[インストールや実行中にエラーが起こった場合の対処法 | Web制作者のためのSassの教科書 - 公式サポートサイト](http://book.scss.jp/code/c2/07.html)
での
> 【追記】インストールをする際にSSLエラーになる
の内容を簡単にまとめると
1. `gem source -a http://rubygems.org/` で http ソースを指定
2. 希望の gem をインストール
3. `gem source -r http://rubygems.org/` で http ソースを削除
となります。
ではやっていきましょう。
C:\Users\riocampos>ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [i386-mingw32]
C:\Users\riocampos>gem -v
2.2.2
C:\Users\riocampos>gem source --list
*** CURRENT SOURCES ***
取得先を追加します。
C:\Users\riocampos>gem source -a http://rubygems.org/
https://rubygems.org is recommended for security over http://rubygems.org/
Do you want to add this insecure source? [yn]
「安全じゃ無いソースだけど追加するの?」と訊ねてくるので、もちろん `y`。
http://rubygems.org/ added to sources
C:\Users\riocampos>gem source --list
*** CURRENT SOURCES ***
https://rubygems.org/
http://rubygems.org/
追加できました。
## Rubygems インストーラ gem をインストール
Rubygems を最新版に更新するのは `gem update --system` で済むらしいのですが、残念ながら **現在の Rubygems の2.4系の Windows 版はバグがある** ため、 **2.2系を入れるべき** です。2.2系の最新版は2.2.3ですので、 `gem install rubygems-update -v 2.2.3` で入れます。
C:\Users\riocampos>gem install rubygems-update -v 2.2.3
Fetching: rubygems-update-2.2.3.gem (100%)
Successfully installed rubygems-update-2.2.3
Parsing documentation for rubygems-update-2.2.3
Installing ri documentation for rubygems-update-2.2.3
Done installing documentation for rubygems-update after 3 seconds
WARNING: Unable to pull 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)
1 gem installed
エラー出てますけど、 gem 自身はインストール出来たので良しとします。
## Rubygems インストーラ gem を実行
Rubygems は `update_rubygems` でインストールします。
C:\Users\riocampos>update_rubygems
RubyGems 2.2.3 installed
Parsing documentation for rubygems-2.2.3
Installing ri documentation for rubygems-2.2.3
=== 2.2.2 / 2014-02-05
:
(長々と Change Log が出力される)
:
バージョン確認します。
C:\Users\riocampos>gem -v
2.2.3
更新されています。
## http ソースを削除
C:\Users\riocampos>gem source -r http://rubygems.org/
http://rubygems.org/ removed from sources
C:\Users\riocampos>gem source --list
*** CURRENT SOURCES ***
https での取得先のみになりました。