【发布时间】:2012-08-19 15:04:24
【问题描述】:
这是我的第一个问题:)
在 rails 3.2.6(使用 rvm 和 ruby 1.8.7)上,我的 Gemfile 包含两个 gem,它们在使用 bundle install 命令时会导致问题。
这些宝石是使用:
gem 'libv8', "~> 3.11.8.3"
gem 'therubyracer', '~> 0.11.0beta6'
我的问题如下:运行bundle install 命令时,bundler 获取二进制(预编译)gem(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,在我的旧记忆中,我可能是错的),这使得应用程序无法加载预编译的 gem。
所以我必须从源包安装 gem。
目前,我必须bundle install,然后从我的~/.rvm/gems/... 和gem install ~/tmp/libv8-3.11.8.3.gem 和gem install ~/tmp/therubyracer-0.11.0beta6.gem 中删除预编译的gem,这不太实用。
有没有办法强制 Bundler 获取源版本并编译它们?
【问题讨论】:
-
你应该认真考虑升级你的 ruby,
1.8.7不再维护,当前版本是1.9.3-p194- 这是你应该使用的。
标签: ruby-on-rails gem rvm passenger bundler