[ruby-list:50342] Re: [質問] gem Error: Loading command: install (Fiddle::DLError) ... can't load kernel32
From:
Nobuyoshi Nakada <nobu@...>
Date:
2016-06-26 01:22:01 UTC
List:
ruby-list #50342
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