使用bundle的项目需要许多在安装时编译的gem。我的问题是我无法在设备上编译(长话短说:我在Android上)。所以我交叉编译了那些本地宝石,手动安装它们(gem install test-1.0-arm-linux.gem
),一切都很顺利。
现在我有2种方法可以实现这一目标而无需手动安装:
vendor/cache
第一个解决方案工作正常,但每次我必须修复gem上的一些bug时,我必须下载一个大的tarball。我更喜欢第二种解决方案,但这似乎不起作用。
我在我的localhost上安装了geminabox,并将我的交叉编译宝石推到了它上面。将它的URL添加到源(gem sources -a http://localhost:9292/
)但捆绑者更喜欢从 rubygems.org 下载和编译gem。
如何强制下载交叉编译的宝石?
根据Gemfile manual arm-linux
的PLATFORMS部分不受支持。
答案 0 :(得分:0)
好的,找到了。
SOURCE PRIORITY section of the Gemfile manual指定Gemfile中的源将按照它们出现的相反顺序使用,所以我只是在 rubygems.org 之后在Gemfile中添加了我的私有服务器,一切都很顺利。我还从gems中删除了我的源代码:
gem sources -r 'http://localhost:9292/
我希望这有助于某人 此致