[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

In This Thread