From: Nobuyoshi Nakada Date: 2016-06-26T10:22:01+09:00 Subject: [ruby-list:50342] Re: [質問] gem Error: Loading command: install (Fiddle::DLError) ... can't load kernel32 On 2016/06/26 7:32, cerberus@m3.kcn.ne.jp wrote: > 私のところでも、cygwin を 2.5.2-1 にアップデートしたタイミングでだと思いますが > gem list で同様のエラーがでるようになりました。 > >> これだけだとなんとも言えないので、とりあえず--debugオプション付きで試 >> してみてください。 >> >> ruby --debug -S gem list > > /usr/bin/ruby --debug -S gem list の結果は添付ファイルのようになります。 > > 何故かよくわからないのですが、/usr/share/ruby/2.2.0/win32/resolv.rb を以下のよう > に修正すれば問題なく動作するようです。 > > --- /usr/share/ruby/2.2.0/win32/resolv.rb.bak 2016-06-26 07:22:55.991075400 +0900 > +++ /usr/share/ruby/2.2.0/win32/resolv.rb 2016-06-26 07:23:17.585912800 +0900 > @@ -35,7 +35,7 @@ > > module Kernel32 > extend Importer > - dlload "kernel32" > + dlload "kernel32.dll" > end > getv = Kernel32.extern "int GetVersionExA(void *)", :stdcall > info = [ 148, 0, 0, 0, 0 ].pack('V5') + "\0" * 128 ありがとうございます。r55507でコミットしました。 だいぶ以前から".dll"がついていない場合は.dllを探さないようにしていた[1]ようですが、 最近の変更[2]でパス名がない場合も同じ動作になったようです。 [1]: https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=commitdiff;f=winsup/cygwin/dlfcn.cc;h=df95867087d4e39ec232aac92ffc111bfe565f18 [2]: https://cygwin.com/git/gitweb.cgi?p=newlib-cygwin.git;a=commitdiff;f=winsup/cygwin/dlfcn.cc;h=8a31aa37bc97215f137fc705b5f6e43e06683c15