Sur un Windows 7 Professionnel 64 bits fraîchement installé, j'ai installé Cygwin (64) et certains de ses packages, y compris Ruby. J'ai également installé Ruby à l'aide du programme d'installation de Ruby, car j'en aurai probablement besoin à la fois pour les shells Windows par défaut et pour Cygwin.
Maintenant, quand j'essaye d'exécuter un gem commande comme gem list ou gem install foo, Je reçois une erreur étrange que je n’ai pas résolue au cours des dernières heures de recherche sur Internet.
$ which ruby
/usr/bin/ruby
$ which gem
/usr/bin/gem
$ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-cygwin]
$ gem -v
2.4.8
$ gem list
ERROR: Loading command: list (Fiddle::DLError)
can't load kernel32
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
$ gem install sass
ERROR: Loading command: install (Fiddle::DLError)
can't load kernel32
ERROR: While executing gem ... (NoMethodError)
undefined method `invoke_with_build_args' for nil:NilClass
Cependant, avec la version Windows native, à partir du CMD Windows, cela fonctionne sans problème. Je ne peux cependant pas utiliser les éléments Windows Ruby natifs de Cygwin, car cela me donne des erreurs, mais ce n’est pas la question qui se pose ici.
Avec Process Monitor, j'ai compris que Ruby essayait d'ouvrir C:\cygwin64\bin\kernel32.dll et échoue, car ce fichier n’est pas là. J'ai essayé de copier le kernel32.dll de C:\Windows\System32 et celui de C:\Windows\SysWOW64 dans ce Cygwin bin dossier et toujours la même erreur (à part cela, il a ensuite dit ne peut pas charger kernel32.dll ), bien que le moniteur de processus n’ait pas montré de NAME NOT FOUND erreur plus.
Quelle magie se passe ici? J'aimerais vraiment comprendre ce qui ne va pas ici. J'apprécie toute aide.