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.