如何在捆绑器中为多个平台供应宝石

时间:2013-01-25 08:32:14

标签: ruby-on-rails bundler

如何在多个平台的捆绑商中为宝石供应商?

我在Mac OSX上开发但在ubuntu上部署 具有本机依赖关系的gem(如libv8)可以拥有名为

的gem

https://rubygems.org/gems/libv8/versions/3.11.8.13-x86_64-darwin-10https://rubygems.org/gems/libv8/versions/3.11.8.13-x86_64-linux 所有版本都可以在https://rubygems.org/gems/libv8/versions

看到

所以在我的Mac上,当我运行捆绑包时。我想要:
libv8-3.11.8.13-x86_64-darwin-10.gem和libv8-3.11.8.13-x86_64-linux.gem 同样升级和移除宝石也必须删除并添加其他平台的宝石

目前在Mac上它只添加了libv8-3.11.8.13-x86_64-darwin-10.gem

2 个答案:

答案 0 :(得分:0)

在app中的vendor / cache文件夹中下载此gem https://rubygems.org/gems/libv8/versions/3.11.8.13-x86_64-linux。我不认为您经常更新此gem是非常正常的解决方案。我也遇到了这个问题,没有找到其他解决方案。

答案 1 :(得分:0)

这是一个很老的问题,但今天我仍然遇到同样的问题,下面的命令解决这个问题:

bundle config specific_platform true
bundle lock --add-platform universal-darwin
bundle lock --add-platform x86_64-linux
bundle package --all-platforms

快速测试:

mkdir /tmp/test
cd /tmp/test
bundle config specific_platform true
bundle init
bundle lock --add-platform universal-darwin
bundle lock --add-platform x86_64-linux
bundle add google-protobuf
bundle cache --all-platforms