Bundle仅支持x64-mingw32平台,但本地是x86_64-linux

时间:2017-03-11 00:45:51

标签: deployment rubygems bundler ruby-on-rails-5 gemfile

我在Windows环境中开发了Rails应用程序,我正在尝试部署到Linux Ubuntu 16.04中。我绊倒了这个错误:

  

您的捆绑仅支持平台[“x64-mingw32”],但您的本地   平台是[“ruby”,“x86_64-linux”]并且没有兼容的匹配   在这两个名单之间。

我认为问题出在gemfile.lock上。除了为每个宝石看到带有'x64-mingw32'的字符串外;我发现还有这个:

  

PLATFORMS
  x64的mingw32的

如何在Linux 16.04 LTS环境中运行应用程序?

2 个答案:

答案 0 :(得分:1)

Capistrano需要Gemfile.lock文件才能进行部署。 Bundler是造成这种情况的原因,但根据他们的Github,这是故意使您的应用程序与不同平台兼容的行为。

为使此功能正常运行-从1.13版本开始,您可以在Windows上运行bundle lock --add-platform ruby以便将ruby平台提前添加到锁定文件中。

Github Issue

答案 1 :(得分:0)

您的listeners限制了您的应用可以运行的平台 在没有dispatch文件的情况下将应用程序部署到Linux中可以解决您的问题。

如果您的Gemfile.lock中有任何特定于Windows的宝石,最好将其移至专用区域:

.lock