わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

「cannot load such file -- win32/resolv」のエラーには,snapshotからファイルをコピー

あるCygwin環境で,rbenv install 2.3.0-devによりRubyのインストールに成功しました.なのですが,rbenv global 2.3.0-devとしたあと,これまで使っていたgemのパッケージをインストールしようと,まずはgem install bundlerを実行したら,以下のエラーメッセージが出てきました.

/home/takehikom/.rbenv/versions/2.3.0-dev/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- win32/resolv (LoadError)
(略)

他のをインストールしようとしても,同じエラーです.gem listだと,エラーにならず,入っているパッケージが表示されました.
これまで問題なく使っていたバージョンは,2.2.0-devです.そこで,ls ~/.rbenv/versions/2.2.0-dev/lib/ruby/2.2.0ls ~/.rbenv/versions/2.3.0-dev/lib/ruby/2.3.0を実行して,ファイルの存否を比べたところ,前者にはwin32,Win32API.rb,win32oleというファイル名・ディレクトリ名があるのに,後者(新しく入れたもの)には,それらがないことが分かりました.
逆に言うと,ファイルを置けば,大丈夫かな…
2.2.0-devのを2.3.0-devにコピーするのは,ちょっと…
と思いまして,スナップショットを使うことにしました.https://www.ruby-lang.org/ja/downloads/よりリンクされている,ナイトリースナップショット(snapshot.tar.gz)を/tmpにダウンロードしてそのディレクトリに移動し,tar xf snapshot.tar.gzのあと,cd snapshot/extとしてからlsを実行すると,win32とwin32oleのディレクトリがありました.
cp -a win32{,ole}/lib/* ~/.rbenv/versions/2.3.0-dev/lib/ruby/2.3.0でコピーして,そのあとgem install bundlerを試すと…成功しました.
pryやnokogiri,rmagickなど,2.2.0-devで愛用していたgemのパッケージを入れることもできました.