使用bundle时,bson_ext 1.7.0无法在Linux上构建:安装Capistrano任务

时间:2012-11-09 20:52:21

标签: ruby capistrano bundler bson-ext

以下是错误消息:

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-devruby1.8-dev apt软件包,但这没有帮助。

bundle install能够在我的Mac OS X开发系统上成功构建bson_ext但在Linux生产环境中失败,即使我直接在capistrano的上下文之外运行它bundle:install任务。

我也尝试过gem update --systemgem update bundler,但这没有帮助。

我怀疑问题在于如何在目标系统上调用bundle install。尽管如此,我还是尝试将Capistrano更新到版本2.13.5,但这并没有帮助。

1 个答案:

答案 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。不知道为什么,但也许这个程序可以帮助那些有类似问题的人。