4

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

我在 Mac OSX 上开发,但在 ubuntu 上部署一个具有像 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 同样升级和删除 gem 必须删除和添加其他平台的 gem

现在在 Mac 上它只添加 libv8-3.11.8.13-x86_64-darwin-10.gem

4

2 回答 2

0

在您的应用程序的供应商/缓存文件夹中下载此 gem https://rubygems.org/gems/libv8/versions/3.11.8.13-x86_64-linux。我不认为您经常更新此 gem 这是一个很正常的解决方案. 我也遇到了这个问题,没有找到其他解决方案。

于 2013-01-25T15:07:31.253 回答
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
于 2021-03-22T15:53:47.647 回答