如何修复此错误:“您的捆绑包仅支持平台 [],但您的本地平台是 [“ruby”、“x86_64-darwin-19”],并且没有兼容性...”

CY2*_*Y23 4 ruby rubygems ruby-on-rails

当我运行时,bundle install这是我得到的响应

“您的捆绑包仅支持平台 [],但您的本地平台是 [“ruby”、“x86_64-darwin-19”],并且这两个列表之间没有兼容的匹配。”

我已经用谷歌搜索了该错误,但找不到适合我的答案,该错误本身似乎并不常见。

我跑了bundle env,这就是我得到的。

环境

Bundler       2.1.4
  Platforms   ruby, x86_64-darwin-19
Ruby          2.7.0p0 (2019-12-25 revision 647ee6f091eafcce70ffb75ddf7e121e192ab217) [x86_64-darwin19]
  Full Path   /Users/cykalu/.rbenv/versions/2.7.0/bin/ruby
  Config Dir  /Users/cykalu/.rbenv/versions/2.7.0/etc
RubyGems      3.1.4
  Gem Home    /Users/cykalu/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0
  Gem Path    /Users/cykalu/.gem/ruby/2.7.0:/Users/cykalu/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0
  User Home   /Users/cykalu
  User Path   /Users/cykalu/.gem/ruby/2.7.0
  Bin Dir     /Users/cykalu/.rbenv/versions/2.7.0/bin
Tools         
  Git         2.23.0
  RVM         not installed
  rbenv       rbenv 1.1.2
  chruby      not installed
Run Code Online (Sandbox Code Playgroud)

捆绑器构建元数据

Built At          2020-01-05
Git SHA           32a4159325
Released Version  true
Run Code Online (Sandbox Code Playgroud)

捆绑器设置

deployment
  Set for the current user (/Users/cykalu/.bundle/config): true
path
  Set for your local app (/Users/cykalu/Documents/GitHub/rails_app/.bundle/config): "vendor/bundle"
Run Code Online (Sandbox Code Playgroud)

宝石文件

宝石文件

Bundler       2.1.4
  Platforms   ruby, x86_64-darwin-19
Ruby          2.7.0p0 (2019-12-25 revision 647ee6f091eafcce70ffb75ddf7e121e192ab217) [x86_64-darwin19]
  Full Path   /Users/cykalu/.rbenv/versions/2.7.0/bin/ruby
  Config Dir  /Users/cykalu/.rbenv/versions/2.7.0/etc
RubyGems      3.1.4
  Gem Home    /Users/cykalu/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0
  Gem Path    /Users/cykalu/.gem/ruby/2.7.0:/Users/cykalu/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0
  User Home   /Users/cykalu
  User Path   /Users/cykalu/.gem/ruby/2.7.0
  Bin Dir     /Users/cykalu/.rbenv/versions/2.7.0/bin
Tools         
  Git         2.23.0
  RVM         not installed
  rbenv       rbenv 1.1.2
  chruby      not installed
Run Code Online (Sandbox Code Playgroud)

Gemfile.lock


Run Code Online (Sandbox Code Playgroud)

小智 12

尝试:bundle lock --add-platform x86_64-linux


reb*_*tte 7

尝试:

$ bundle lock --add-platform x86_64-linux --add-platform ruby
$ bundle install
$ git add . ; git commit -m "Fix bundler issue"
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅heroku-buildpack-ruby问题下的“修复”部分


mon*_*esh 5

您收到此错误是因为deployment您的设置~/.bundle/config被设置为true。您还记得将其添加到您的计算机吗?如果这是您的开发计算机,则不应使用该 Bundler 设置。发生的情况是,当deploymentis时true,Bundler 期望 aGemfile.lock已经被签入版本控制,并且因为您的版本控制是空白的,所以它找不到列出的任何平台,并且您会收到有关该捆绑包仅支持平台 [] 的错误,因为没有。

因此,为了能够生成Gemfile.lockwith bundle install,您需要打开~/.bundle/config并删除此行:

BUNDLE_DEPLOYMENT: "true"
Run Code Online (Sandbox Code Playgroud)