避免“捆绑安装”使用预编译的宝石

时间:2012-08-19 15:04:25

标签: ruby-on-rails gem rvm passenger bundler

这是我在这里的第一个问题:)

在rails 3.2.6(使用rvm和ruby 1.8.7)上,我的Gemfile包含两个在使用bundle install命令时导致问题的gem。

这些宝石使用:

指定
gem 'libv8', "~> 3.11.8.3"
gem 'therubyracer', '~> 0.11.0beta6'

我的问题如下:当运行bundle install命令时,bundler抓取二进制文件(预编译)gems(libv8-3.11.8.3-x86_64-linux.gem和therubyracer-0.11.0beta6-x86_64-linux.gem)而不是普通的来源(libv8-3.11.8.3.gem和therubyracer-0.11.0beta6.gem)。

x86_64版本与我的服务器设置不兼容:包含的动态库使用未知符号(rb_intern2,我的旧内存,我可能是错的),这使得预编译的gems无法被应用程序加载。

这样我必须从源包中安装gem。

目前,我必须bundle install,然后从我的~/.rvm/gems/...然后gem install ~/tmp/libv8-3.11.8.3.gemgem install ~/tmp/therubyracer-0.11.0beta6.gem中删除预编译的宝石,这不太实用。

有没有办法强制Bundler获取源代码并编译它们?

1 个答案:

答案 0 :(得分:2)

尝试:

bundle install --without x86_64-linux

x86_64-linux是一个平台,bundler / ruby​​gems使用它。

它应该相当于:

gem install libv8 -​-platform ruby

详细信息: