1

这是错误消息:

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-devapt 软件包,但这没有帮助。

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

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

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

4

1 回答 1

1

因此,看来bundler1.2.1 无法在我的系统上构建以下 gem:

  • bson_ext1.7.0
  • curb0.8.3
  • nokogiri1.5.5
  • json1.7.5
  • therubyracer0.8.2。

我能够使用gem install <GEMNAME> -v '<VERSION>' --install-dir /var/www/<APP_DIR>/shared/bundle/ruby/1.8/. 之后,运行bundle exec capistrano deploy成功。

bundle似乎无法在我的系统上构建带有本机扩展的 gem。不知道为什么,但也许这个过程会帮助那些有类似问题的人。

于 2012-11-12T17:11:32.290 回答