J'ai mis à niveau mon environnement de Ruby 2.0.0 à 2.2.3.
J'ai également mis à jour (écrasé) DevKit et ré-exécuté Ruby dk.rb install.
J'ai supprimé Gemfile.lock et lancé une installation groupée pour commencer avec un nouvel environnement. Tout a l'air d'aller bien, mais j'ai l'erreur:
E:\Projects\development\Stairs>rake db:migrate
rake aborted!
LoadError: cannot load such file -- bcrypt_ext
E:/Projects/development/Stairs/config/application.rb:7:in `<top (required)>'
E:/Projects/development/Stairs/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- 2.2/bcrypt_ext
E:/Projects/development/Stairs/config/application.rb:7:in `<top (required)>'
E:/Projects/development/Stairs/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
J'ai d’abord eu le même problème avec Nokogiri, que j’ai résolu avec cette solution: Erreur de chargement Nokogiri En utilisant la solution de Juloi Elixir et en installant Nokogiri à partir d’une copie locale.
Mais je n'ai pas envie de faire ça pour chaque gemme! Il semble que Ruby cherche la gemme en utilisant un chemin ./ ou ./2.2, alors que les gemmes sont stockées dans un chemin ./2.2.0. Est-ce configurable? Comment puis-je résoudre ce problème?
Note: Gemfile contains gem 'bcrypt', '~> 3.1.10'
Merci!
La solution était la suivante: bcrypt-Ruby @ github :
Reconstruisez localement le joyau bcrypt:
Notez que cela ne fonctionne que si votre environnement DevKit est correctement configuré (exécutez devkitvars.bat).
J'ai passé une heure entière à réparer cela, tout à l'heure.
Eh bien, j’ai suivi quelques conseils en ligne pour faire un
gem install bcrypt --platform=Ruby
Et puis, cela a fonctionné dans irb.
irb(main):001:0> require 'bcrypt'
=> true
Plus tard, lorsque j'ai dû effectuer une installation groupée, Rails a installé un autre bcrypt pour une raison quelconque, et l'erreur était de retour. Donc, j'avais deux dossiers dans ma racine de gemme.
bcrypt-3.1.10
bcrypt-3.1.10-x64-mingw32
Donc, puisque le premier dossier est celui qui a été construit avec le devkit, et ça marche. J'ai supprimé le contenu du deuxième dossier et y ai copié le contenu du premier.
Semble travailler comme j'écris ceci.
La solution de @ user1185081 a fonctionné pour moi dans une machine Windows. J'ai exécuté les commandes suivantes et travaillé comme par magie:
$ cd C:\RailsInstaller\Ruby2.2.0\lib\Ruby\gems\2.2.0\gems\bcrypt-3.1.10-x86-mingw32\ext\mri
$ Ruby extconf.rb
$ C:\<DevKit Path>\devkitvars.bat (assuming you have devkit installed)(Ran this instead of running "make" because it was not recognized as an internal or external command)
$ make install
Ce qui a fonctionné pour moi sur Windows 7:
gem uninstall bcrypt
pour désinstaller toutes les versions de bcrypt, y compris celles répertoriées comme dépendances gem install bcrypt
à réinstallerbundle install
Dans mon cas, la désignation de l'ancienne version à bcrypt dans Gemfile
était une cause de l'erreur. J'ai supprimé une désignation de la version et exécuté bundle update bcrypt
, puis cela a été réglé.
Voici la solution qui a fonctionné pour moi:
C:\> gem uninstall brcypt
C:\> gem install --no-ri --no-rdoc bcrypt
C:\> cd (path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri
C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> Ruby extconf.rb
C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> make
C:\(path to gems root)\bcrypt-3.1.7-x86-mingw32\ext\mri> make install
J'ai eu le même problème:
ne peut pas charger un tel fichier - bcrypt_ext
Windows 8.1 64bit
Ruby 2.3.3p222 (2016-11-21 révision 56859) [i386-mingw32]
Rails 5.1.4
Ma solution:
bijou 'bcrypt', git: 'https://github.com/codahale/bcrypt-Ruby.git',: require => 'bcrypt'
Cela fonctionne pour moi, ajoutez ceci à votre fichier de pierres précieuses:
gem 'bcrypt', '~> 3.1.7', platform: :Ruby