Как мне исправить эту ошибку: «Ваш пакет поддерживает только платформы [], но ваши локальные платформы [«ruby», «x86_64-darwin-19″], и нет совместимости …»

#ruby-on-rails #ruby #rubygems

#ruby-on-rails #ruby #rubygems

Вопрос:

Когда я запускаю 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
 

Метаданные сборки пакета

 Built At          2020-01-05
Git SHA           32a4159325
Released Version  true
 

Настройки пакета

 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"
 

Gemfile

Gemfile

 source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.7.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 6.0.3', '>= 6.0.3.4'
# Use sqlite3 as the database for Active Record
gem 'sqlite3', '~> 1.4'
# Use Puma as the app server
gem 'puma', '~> 4.1'
# Use SCSS for stylesheets
gem 'sass-rails', '>= 6'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem 'webpacker', '~> 4.0'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.7'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Active Storage variant
# gem 'image_processing', '~> 1.2'

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.2', require: false

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '~> 3.2'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  # Easy installation and use of web drivers to run system tests with browsers
  gem 'webdrivers'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
 

Gemfile.lock

 
 

Комментарии:

1. можете ли вы опубликовать всю трассировку? Я знаю, что это, вероятно, много, но я думаю, это поможет.

2. Это все, что он говорит Your bundle only supports platforms [] but your local platforms are ["ruby", "x86_64-darwin-19"], and there's no compatible match between those two lists. Вы можете проверить обновленный вопрос.

3. Является ‘Gemfile. блокировка» действительно пуста?

4. Можете ли вы запустить gem install bundler и bundler -v ?

5. Файл Gemfile. файл блокировки вообще не генерируется. Я могу запустить gem install bundler и bundler -v

Ответ №1:

попробуйте: bundle lock --add-platform x86_64-linux

Ответ №2:

Вы получаете эту ошибку из deployment -за того, что в вашем настройках ~/.bundle/config установлено значение true . Вы помните, как добавляли это на свой компьютер? Если это ваша машина разработки, вам не следует использовать этот параметр пакета. Что происходит, так это то, что когда deployment is true , Bundler ожидает, что a Gemfile.lock уже будет проверен в системе управления версиями, и поскольку ваш пустой, он не может найти ни одной платформы в списке, и вы получаете эту ошибку о том, что пакет поддерживает только платформы [], потому что их нет.

Итак, чтобы иметь возможность генерировать Gemfile.lock with bundle install , вам нужно открыть ~/.bundle/config и удалить эту строку:

 BUNDLE_DEPLOYMENT: "true"
 

Ответ №3:

Попробуйте:

 $ bundle lock --add-platform x86_64-linux --add-platform ruby
$ bundle install
$ git add . ; git commit -m "Fix bundler issue"
 

Для получения более подробной информации, пожалуйста, ознакомьтесь с разделом «Исправление» в этой проблеме heroku-buildpack-ruby.