例えば以下のような、rubygems のリポジトリと通信を行う gem コマンド を起動すると、
gem install
:: あるいは
gem update --system
以下のようなメッセージが表示され、インストール等の作業を行わずに終了する
ERROR: Could not find a valid gem 'xxxxx' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect retur
ned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz)
rubyコマンド、gemコマンドのバージョンを知る方法:
ruby -v
gem -v
以下で言及するバージョン番号は、2016.10月末のものであり、 時期の経過によって数字が変化することを承知されたい。
rubygemsの位置関係を右図を参考に理解しておいて下さい。
Chocolateyパッケージマネージャでインストールしたものならば、 右図または下のリストのような Chocolatey(またはそれを略した)コマンドでアップデートできる。
cup ruby -y
基本的には、最初にインストールしたときのガイドに従えばいい。
cinst ruby -y
:: 或は既存の版があるためにエラーが出るときは
:: -f (force = ともかくインストール) オプション
:: を付加して
cinst ruby -yf
RubyGemsの、通常のアップデートは
gem update --system
で行うが、SSLに問題があればこれは動作しない。
httpsを使わず、httpでリポジトリにアクセスするという手がある。
gem update --system --source http://rubygems.org/
:: または、
gem source --add http://rubygems.org/
:: に加えて、
gem source --remove https://rubygems.org/
:: と、事前に設定しておいて
:: (この2行の設定は保存されるので後でもとに戻す必要がある)
gem update --system
上記の方法で、httpsでなくhttpsでアクセスした場合に
gem update が機能しないケースも報告されており
その時は、以下の方法が使えるらしい
gem install rubygems-update --source http://rubygems.org/
:: を行った上で
update_rubygems
(参考サイト)
コマンドプロンプトを管理者権限で開いて、
ruby setup.rb
ruby処理系のフォルダを見つける
where gem
で得られるフォルダ(沢山あれば上の方にあるもの)が、たとえば
C:\ProgramData\chocolatey\ruby23\bin\gem
であれば、 bin 以下を除いた場所、ここでは
C:\ProgramData\chocolatey\ruby23
rubyのバージョンを確認
ruby -v
where gem
の結果が、たとえば
ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32]
であれば、2.3.0
置き場所:
1.のフォルダ名の下に /lib/ruby/、 2.のバージョン番号、
/rubygems/ssl_certs をつないだフォルダ、
上記の例だと、
C:\ProgramData\chocolatey\ruby23\lib\ruby\2.3.0\rubygems\ssl_certs