试图在我的Windows 7机器上运行ruby,每当我去Rails或耙数据库:迁移我得到以下错误无法加载这样的文件bcrypt_ext。
我的ruby版本是2.2.1我的rails版本是4.2.0和bcrypt版本是3.1.10。 所有的gem安装正确,当我运行捆绑安装,但是每当我尝试耙它给我这个错误。 任何帮助将不胜感激
你需要使用它在这里说的: https : //www.alib.jp/entries/bcrypt_ext_load_error_on_ruby21x
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
对于Windows 10,现在可以运行bcrypt 3.1.11,并在24144中进行检查
脚步:
gem install bcrypt -v '3.1.11'
-v'3.1.11 gem install bcrypt -v '3.1.11'
) 当前版本
红宝石2.2.4p230(2015-12-16修改53155)[i386-mingw32]
操作系统名称:Microsoft Windows 10 Pro
OS版本:10.0.10586不适用生成10586
肮脏的快速解决方法是安装mri版本
gem install bcrypt --platform=ruby
为我工作。
Fetching: bcrypt-3.1.11.gem (100%) Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... Successfully installed bcrypt-3.1.11
来源: topac评论于2015年4月17日https://github.com/codahale/bcrypt-ruby/issues/116
编译的gem二进制文件很可能不包含Ruby 2.2.1
二进制文件。 这是因为交叉编译Ruby与Windows目标存在问题。 看到这个答案的更多细节。
最好的选择是降级到Ruby 2.1.5
。
你可以尝试自己编译宝石,但这是一个完全不同的野兽。 在某些情况下,像nokogiri
,这是不可能的。
Rich Peck解决方案为我工作了一个小小的更新。 确保devkit包含在环境路径中(通过在命令提示符下键入path进行检查)如果不包含它,则需要将devkit / bin和devkit / mingw / bin路径添加到PATH变量。
否则 – make:x86_64-w64-mingw32-gcc:找不到命令 – 在生成文件时会抛出错误。
一旦错误得到解决,那么我能够使文件和bcrypt_ext问题得到解决。
我在Window 8.1 64bit,Ruby 2.3.3 64bit,Rails 4.2.10中遇到同样的问题。
我的快速解决方案
第1步:删除gem中的所有bcrypt: gem uninstall bcrypt
(如果存在,请选择选项3(全部删除))
第二步:再次安装bcrypt: gem install bcrypt
然后检查bcrypt的版本: gem list bcrypt
步骤3:在您的项目的Gemfile中添加:gem'bcrypt gem 'bcrypt', '3.1.11', platforms: [:ruby, :x64_mingw]
notice:更改bcrypt的合适版本(我的版本:3.1.11)
步骤4:在项目路径中运行命令: bundle install
第5步:删除不需要的bcrypt:运行命令: gem uninstall bcrypt
你可以看到bcrypt的一些版本,你应该保留一个版本:bcrypt- [你的版本]。 (删除所有版本:bcrypt- [your-version] -x64-mingw32。在mycase中,删除:bcrypt-3.1.11-x64-mingw32)
重新启动Rails切断,完成
我想这个proplem,因为当我们安装bcrypt,我们没有指定64位或32位,它与窗口或红宝石(64位或32位)不兼容,