#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.