LoadError:无法在Windows 2008 x64服​​务器上加载此类文件–bcrypt_ext

我将我的环境从Ruby 2.0.0升级到2.2.3。

我还升级(覆盖)DevKit,并重新运行ruby dk.rb install。

我删除了Gemfile.lock并运行bundle install以一个全新的环境开始。 一切看起来都不错,但我收到错误:

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 `' E:/Projects/development/Stairs/Rakefile:4:in `' LoadError: cannot load such file -- 2.2/bcrypt_ext E:/Projects/development/Stairs/config/application.rb:7:in `' E:/Projects/development/Stairs/Rakefile:4:in `' (See full trace by running task with --trace) 

我第一次遇到与Nokogiri相同的问题,我使用这个解决方案解决了: Nokogiri使用Juloi Elixir的解决方案加载错误并从本地副本安装Nokogiri。

但我不想做这个foreachgem! 看起来ruby正在使用./或./2.2路径搜索gem,而gem则存储在./2.2.0路径中。 这是可配置的吗? 我该如何解决这个问题?

 Note: Gemfile contains gem 'bcrypt', '~> 3.1.10' 

谢谢!

我刚刚花了整整一个小时来解决这个问题。

我做的是我在网上提出了一些建议

 gem install bcrypt --platform=ruby 

然后,它在irb中工作。

 irb(main):001:0> require 'bcrypt' => true 

后来当我不得不进行捆绑安装时,由于一些奇怪的原因,rails安装了另一个bcrypt并且错误又回来了。 所以我的gem根中有两个文件夹。

 bcrypt-3.1.10 bcrypt-3.1.10-x64-mingw32 

因此,由于第一个文件夹是使用devkit构建的文件夹,因此它可以工作。 我删除了第二个文件夹的内容,并将第一个文件夹的内容复制到其中。

似乎在工作,因为我正在写这篇文章。

解决方案在这里: bcrypt-ruby @ github :

在本地重建bcrypt gem:

  1. 更改为gem目录\ Ruby22-x64 \ lib \ ruby​​ \ gems \ 2.2.0 \ gems \ bcrypt-3.1.10-x64-mingw32 \ ext \ mri>
  2. 运行ruby extconf.rb
  3. 运行make
  4. 运行make install

请注意,只有正确设置了DevKit环境(运行devkitvars.bat),这才有效。

@ user1185081的解决方案适用于Windows机器。 我运行了以下命令并像魔术一样工作:

 $ 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:\\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 

在Windows 7上对我有用的是:

  1. gem uninstall bcrypt卸载所有版本的bcrypt,包括那些列为依赖项的版本
  2. gem install bcrypt重新安装
  3. bundle install

这是我的解决方案:

  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 

在我的例子中,在Gemfile中将旧版本指定为bcrypt是导致错误的原因。 我删除了版本的指定并运行bundle update bcrypt ,然后就解决了。

此过程适用于Windows:

问题在于系统上安装的程序。

卸载所有rails程序:

  1. 所有Ruby程序。

  2. RailsInstaller。

删除所有已卸载的文件,您必须在内部手动执行:

C:\ RailsInstaller

  1. 从以下位置安装de ruby​​ 2.2版:

http://railsinstaller.org/en

等一下,它已经去了。

MarlonJon.es

这适用于我,将其添加到您的gems文件:

 gem 'bcrypt', '~> 3.1.7', platform: :ruby 

我有同样的问题:

无法加载此类文件–bcrypt_ext


Windows 8.1 64位

ruby 2.3.3p222(2016-11-21修订版56859)[i386-mingw32]

Rails 5.1.4


我的解决方案

  1. gem卸载bcrypt-ruby
  2. gem卸载bcrypt
  3. gem install bcrypt -platform = ruby
  4. 将这整行添加到Gemfile:

gem’bcrypt’,git:’https://github.com/codahale/bcrypt-ruby.git’,:require =>’bcrypt’

  1. 捆绑安装