web-dev-qa-db-fra.com

LoadError: impossible de charger un tel fichier - bcrypt_ext sur un serveur Windows 2008 x64

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!

14
user1185081

La solution était la suivante: bcrypt-Ruby @ github :

Reconstruisez localement le joyau bcrypt:

  1. Accédez au répertoire gem\Ruby22-x64\lib\Ruby\gems\2.2.0\gems\bcrypt-3.1.10-x64-mingw32\ext\mri>
  2. Exécuter Ruby extconf.rb
  3. Run make
  4. Lancer make install

Notez que cela ne fonctionne que si votre environnement DevKit est correctement configuré (exécutez devkitvars.bat).

12
user1185081

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.

23
devatwork2

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
10
dhrubo_moy

Ce qui a fonctionné pour moi sur Windows 7:

  1. gem uninstall bcrypt pour désinstaller toutes les versions de bcrypt, y compris celles répertoriées comme dépendances 
  2. gem install bcrypt à réinstaller
  3. bundle install
4
L M Lanford

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é.

1
mitsu

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
1
Sajidur Rahman

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:

  1. gem désinstaller bcrypt-Ruby
  2. gem désinstaller bcrypt
  3. gem installer bcrypt –platform = Ruby
  4. a ajouté toute cette ligne à Gemfile:

bijou 'bcrypt', git: 'https://github.com/codahale/bcrypt-Ruby.git',: require => 'bcrypt'

  1. installation groupée
0
Tomasz Radwan

Cela fonctionne pour moi, ajoutez ceci à votre fichier de pierres précieuses:

gem 'bcrypt', '~> 3.1.7', platform: :Ruby
0
rajanbhadauria