用bundler安装二进制gem

时间:2014-06-05 09:40:44

标签: ruby linux gem arm bundler

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

现在我有2种方法可以实现这一目标而无需手动安装:

  1. 将交叉编译的宝石提取到vendor/cache
  2. 使用私人gem服务器
  3. 第一个解决方案工作正常,但每次我必须修复gem上的一些bug时,我必须下载一个大的tarball。我更喜欢第二种解决方案,但这似乎不起作用。

    我在我的localhost上安装了geminabox,并将我的交叉编译宝石推到了它上面。将它的URL添加到源(gem sources -a http://localhost:9292/)但捆绑者更喜欢从 ruby​​gems.org 下载和编译gem。

    如何强制下载交叉编译的宝石?

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

1 个答案:

答案 0 :(得分:0)

好的,找到了。
SOURCE PRIORITY section of the Gemfile manual指定Gemfile中的源将按照它们出现的相反顺序使用,所以我只是在 ruby​​gems.org 之后在Gemfile中添加了我的私有服务器,一切都很顺利。我还从gems中删除了我的源代码:

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

我希望这有助于某人 此致