use*_*081 15 windows rubygems ruby-on-rails
我将我的环境从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 `<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)
Run Code Online (Sandbox Code Playgroud)
我第一次遇到与Nokogiri相同的问题,我使用这个解决方案解决了:Nokogiri 使用Juloi Elixir的解决方案加载错误并从本地副本安装Nokogiri.
但我不想做这个foreach宝石!看起来ruby正在使用./或./2.2路径搜索gem,而gem则存储在./2.2.0路径中.这是可配置的吗?我该如何解决这个问题?
Note: Gemfile contains gem 'bcrypt', '~> 3.1.10'
Run Code Online (Sandbox Code Playgroud)
谢谢!
小智 23
我刚刚花了整整一个小时来解决这个问题.
我做的是我在网上做了一些建议
gem install bcrypt --platform=ruby
Run Code Online (Sandbox Code Playgroud)
然后,它在irb中工作.
irb(main):001:0> require 'bcrypt'
=> true
Run Code Online (Sandbox Code Playgroud)
后来当我不得不进行捆绑安装时,由于一些奇怪的原因,rails安装了另一个bcrypt并且错误又回来了.所以我的宝石根中有两个文件夹.
bcrypt-3.1.10
bcrypt-3.1.10-x64-mingw32
Run Code Online (Sandbox Code Playgroud)
因此,由于第一个文件夹是使用devkit构建的文件夹,因此它可以工作.我删除了第二个文件夹的内容,并将第一个文件夹的内容复制到其中.
似乎在工作,因为我正在写这篇文章.
use*_*081 12
解决方案在这里:bcrypt-ruby @ github:
在本地重建bcrypt gem:
请注意,只有正确设置了DevKit环境(运行devkitvars.bat),这才有效.
dhr*_*moy 10
@ 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:\<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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13722 次 |
最近记录: |