【问题标题】:Avoid "bundle install" to use pre-compiled gems避免“捆绑安装”以使用预编译的 gem
【发布时间】: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.gemgem install ~/tmp/therubyracer-0.11.0beta6.gem 中删除预编译的gem,这不太实用。

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

【问题讨论】:

  • 你应该认真考虑升级你的 ruby​​,1.8.7 不再维护,当前版本是 1.9.3-p194 - 这是你应该使用的。

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


【解决方案1】:

尝试:

bundle install --without x86_64-linux

x86_64-linux 是一个平台,bundler/rubygems 使用它。

应该相当于:

gem install libv8 -​-platform ruby

详情:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    相关资源
    最近更新 更多