【发布时间】:2011-10-16 18:58:05
【问题描述】:
我最近刚开始遇到 bundler 问题 - 执行 bundle install 或 sudo bundle install 时无法安装 bcrypt-ruby,并退出并出现以下错误:
Installing bcrypt-ruby (2.1.4) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/bin/ruby1.8 extconf.rb
Gem files will remain installed in /home/deploy/vendor/bundle/ruby/1.8/gems/bcrypt-ruby-2.1.4 for inspection.
Results logged to /home/deploy/vendor/bundle/ruby/1.8/gems/bcrypt-ruby-2.1.4/ext/mri/gem_make.out
An error occured while installing bcrypt-ruby (2.1.4), and Bundler cannot continue.
Make sure that `gem install bcrypt-ruby -v '2.1.4'` succeeds before bundling.
但是,gem install bcrypt-ruby -v '2.1.4' 运行得很好(实际上已经在这个盒子上运行过)。手动运行 /usr/bin/ruby1.8 extconf.rb 就可以了,生成的 Makefile 也可以使用 make 运行。
我在 Ubuntu 10.04.1 LTS 上使用 Ruby 1.8.7 和 bundler 1.0.21。其他宝石似乎通过捆绑器工作正常。虽然这可能很明显,但我已经确认安装了 ruby-dev、gcc 等软件包。我尝试将 --deployment 选项与捆绑器一起使用,但没有不同的行为。我认为最近唯一发生的变化是几天前我做了一个包更新,所以包有一个小版本更改(1.0.10 -> 1.0.21),bcrypt 似乎有一个主要版本更改(2.1 .4 -> 3.0.1)。
感谢任何帮助!
【问题讨论】:
-
作为几个添加的数据点,我似乎已经解决了这个问题(虽然我并不认为这是一个解决方案):我指定了旧版本的 bcrypt-ruby (2.1.4)在我的 Gemfile 中,我还做了一个 bundle --deployment (在 Mac OS X 10.7 安装 - 开发盒上),然后在我的 Ubuntu 测试盒上,它“工作”了。我怀疑我仍然会遇到 bcrypt 3.0.1 的问题,而且我不确定为什么 --deployment 会有所帮助,因为明显的问题是与本机扩展有关,因此跨架构执行此操作可能并没有真正的帮助。
标签: ruby rubygems bundler bcrypt