【问题标题】:How to vendorize gems in bundler for multiple platforms如何在捆绑器中为多个平台供应宝石
【发布时间】:2013-01-25 08:32:13
【问题描述】:

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

我在 Mac OSX 上开发,但在 ubuntu 上部署 像 libv8 这样具有本机依赖项的 gem 可以有一个名为

的 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

【问题讨论】:

    标签: ruby-on-rails bundler


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多