以下是错误消息:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/usr/local/bin/ruby extconf.rb
Gem files will remain installed in /var/www/app_dir/shared/bundle/ruby/1.8/gems/bson_ext-1.7.0 for inspection.
Results logged to /var/www/app_dir/shared/bundle/ruby/1.8/gems/bson_ext-1.7.0/ext/cbson/gem_make.out
An error occured while installing bson_ext (1.7.0), and Bundler cannot continue.
Make sure that `gem install bson_ext -v '1.7.0'` succeeds before bundling.
我尝试运行gem install bson_ext -v '1.7.0'
,但这成功没有错误。我已尝试安装ruby-dev
和ruby1.8-dev
apt软件包,但这没有帮助。
bundle install
能够在我的Mac OS X开发系统上成功构建bson_ext
但在Linux生产环境中失败,即使我直接在capistrano
的上下文之外运行它bundle:install
任务。
我也尝试过gem update --system
和gem update bundler
,但这没有帮助。
我怀疑问题在于如何在目标系统上调用bundle install
。尽管如此,我还是尝试将Capistrano更新到版本2.13.5,但这并没有帮助。
答案 0 :(得分:1)
因此,似乎bundler
1.2.1无法在我的系统上构建以下宝石:
bson_ext
1.7.0 curb
0.8.3 nokogiri
1.5.5 json
1.7.5 therubyracer
0.8.2。我能够使用gem install <GEMNAME> -v '<VERSION>' --install-dir /var/www/<APP_DIR>/shared/bundle/ruby/1.8/
构建这些内容。在此之后,运行bundle exec capistrano deploy
成功。
bundle
似乎无法在我的系统上构建具有原生扩展名的gem。不知道为什么,但也许这个程序可以帮助那些有类似问题的人。