【问题标题】:install binary gems with bundler使用 bundler 安装二进制 gem
【发布时间】:2014-07-26 05:49:57
【问题描述】:

使用 bundle 的项目需要许多在安装时编译的 gem。我的问题是我无法在设备上编译(长话短说:我在 android 上)。所以我交叉编译了这些原生 gem,手动安装它们(gem install test-1.0-arm-linux.gem),一切都很好。

现在我有 2 种方法可以在不手动安装的情况下实现这一点:

  1. 将交叉编译的 gem 提取到 vendor/cache
  2. 使用私有 gem 服务器

第一个解决方案工作正常,但每次我必须修复 gem 上的一些错误时,我都必须下载一个大 tarball。我更喜欢第二种解决方案,但这似乎行不通。

我在我的本地主机上设置了 geminabox,并将我的交叉编译的 gem 推到它上面。将它的 url 添加到源 (gem sources -a http://localhost:9292/) 但捆绑器更喜欢从 rubygems.org 下载和编译 gem。

如何强制它下载交叉编译的 gem?

根据Gemfile manual arm-linux 的PLATFORMS 部分,不支持。

【问题讨论】:

    标签: ruby linux gem arm bundler


    【解决方案1】:

    好的,找到了。
    SOURCE PRIORITY section of the Gemfile manual 指定 Gemfile 中的源将按照它们出现的相反顺序使用,所以我只是在 rubygems.org 之后将我的私有服务器添加到 Gemfile 中,一切正常。我还通过以下方式从 gem 中删除了我的来源:

    gem sources -r 'http://localhost:9292/
    

    我希望这对某人有所帮助。
    问候

    【讨论】:

      猜你喜欢
      • 2014-04-02
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 2013-05-02
      相关资源
      最近更新 更多