LoginSignup
9
9

More than 5 years have passed since last update.

RubyInstallerでRuby2.1系を入れた後にRubygems証明書を入れ替えずにgemコマンドを使えるようにする

Last updated at Posted at 2015-02-26

RubyInstaller で Ruby をインストールしても、そのままでは Rubygems が使えない、という記事は 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 ***

https://rubygems.org/

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系invalid byte sequence in UTF-8 エラーが出ます。エンコード問題のようです。

UTF-8 環境での不具合 Cygwin - RubyGems - PIB
UTF-8 環境での不具合 Cygwin - Ruby-1.9.3p327 - win32/registry - PIB

Ruby 2.1系以降では問題ないので、2.1系を使いましょう。
もしくは、頑張って証明書を手で入れ替えましょう。

元記事

http ソースを追加する

インストールや実行中にエラーが起こった場合の対処法 | Web制作者のためのSassの教科書 - 公式サポートサイト
での

【追記】インストールをする際に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 ***

https://rubygems.org/

取得先を追加します。

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://rubygems.org/

https での取得先のみになりました。

9
9
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9