如何在多个平台的捆绑商中为宝石供应商?
我在Mac OSX上开发但在ubuntu上部署 具有本机依赖关系的gem(如libv8)可以拥有名为
的gemhttps://rubygems.org/gems/libv8/versions/3.11.8.13-x86_64-darwin-10 和https://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
答案 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