我有一个Ruby on Rails项目落在我身上。我根本不认识露比但不需要更改代码。问题是图书馆。我得到了一个错误,Heroku帮助我指向Heroku Removing Gemfile.lock because it was generated on Windows。这没有我希望的那么有用。Gemfile不包含对答案中提到的库的任何引用。我开始试图找出可能与Windows有关的东西。但是,我没有向文件中添加任何内容,只是更新了版本号。我使用的Gemfile直接来自Heroku的项目。我看不出如何添加任何与Windows相关的内容。总之,我真的不知道我在找什么。以下是Heroku不喜欢的Gemfile:
ruby '3.2.2'
source 'https://rubygems.org'
gem 'bundler', '>= 2.4.10'
gem 'rails', '7.0.5'
gem 'coffee-rails', '~> 5.0.0'
group :production, :staging do
gem 'rails_12factor'
end
gem 'skylight', '~> 5.3.4'
gem 'newrelic_rpm'
gem 'puma'
gem 'pg'
gem 'sass-rails', '~> 6.0.0'
gem 'font-awesome-rails'
gem 'bootstrap-sass'
gem 'bootstrap-datepicker-rails'
gem 'bootstrap-will_paginate'
gem 'twitter-bootstrap-rails-confirm', '~> 2.0.2'
gem 'chartjs-ror', '~> 3.7.0' # git: 'git://github.com/paulstefanort/chartjs-ror.git', ref: '3b6184ac39'
gem 'jquery-datatables-rails', '~> 3.4.0'
gem 'jquery-ui-rails'
gem 'local_time'
gem 'devise'
gem 'jwt'
gem 'paperclip'
gem 'aws-sdk', '< 2.0'
gem 'foreman'
gem 'uglifier', '>= 4.2.0'
gem 'jquery-rails'
gem 'jbuilder', '~> 2.11.5'
group :development, :test do
gem 'byebug'
gem 'web-console', '~> 4.2.0'
gem 'spring'
end
gem 'spring-commands-rspec', group: [:development, :test]
gem 'rspec-rails', group: [:development, :test]
group :development do
gem 'sexp_processor'
gem 'flog'
gem 'better_errors'
end
group :test do
gem 'shoulda-matchers', require: false
gem 'guard-rspec'
gem 'simplecov', require: false
gem 'factory_girl_rails'
gem 'faker'
gem 'capybara'
gem 'capybara-webkit'
gem 'rspec-sidekiq'
gem 'database_cleaner'
end
gem 'dotenv-deployment', group: [:development, :test]
gem 'date_validator'
gem 'country_select'
gem 'active_model_serializers'
gem 'mail'
gem 'zbase32', github: 'paulstefanort/zbase32-ruby'
gem 'lol_dba', group: :development
gem 'chosen-rails'
#gem 'chosen-sass-bootstrap-rails', github: 'caarlos0-graveyard/chosen-sass-bootstrap-rails'
gem 'mandrill-rails'
gem 'griddler', '1.5.2'
gem 'griddler-sendgrid', '1.2.0'
gem 'gcm'
gem 'pusher'
gem 'twilio-ruby'
gem 'sidekiq'
gem 'sidekiq-limit_fetch'
gem 'rack-mini-profiler', require: false
gem 'sinatra', require: false
#gem 'quarry', github: 'paulstefanort/quarry'
gem 'keen'
gem 'react-rails', '~> 2.7.1', github: 'reactjs/react-rails'
gem 'airbrake'
#gem 'rbtrace'
gem 'countries'
#gem 'rmagick', '5.2.0'
source 'https://rails-assets.org' do
gem 'rails-assets-react-bootstrap'
end
字符串
谁能告诉我我在寻找什么,我可能会改变什么?
1条答案
按热度按时间xv8emn3q1#
当你在Heroku上收到这样的警告
字符串
那么问题可能不是仅在Windows上可用而不可用于任何其他平台的gem。但是一个有多个平台特定版本的gem,只安装了Windows版本。
例如,有一个
nokogiri
gem,它是Ruby on Rails的actiontext
库的传递依赖项。这个gem的每个版本都有针对特定平台的不同版本,如x86-mingw32
、x86-linux
、java
等。为了允许Bundler在不同的平台上加载正确的版本,你必须告诉Bundler你想在什么平台上使用你的应用,以及在生成
Gemfile.lock
时保持哪些gem版本可用。您可以检查当前使用
bundle platform
配置的平台可能会返回如下内容:型
这意味着Bundler将只安装gem的
ruby
版本(这基本上是大多数gem的默认版本)和x86-mingw32
版本(当不同平台有多个版本可用时)。但是Heroku在Linux上运行他们的平台。因此,您必须告诉Bundler也添加
x86_64-linux
平台支持。完成后,再次运行bundle install
,提交更改并将这些更改推送到Heroku:型
当您不再使用Windows进行应用程序的未来开发时,我建议使用
型
您可能需要将
x86-mingw32
更改为bundle platform
命令返回的任何Windows特定平台字符串。当您在Apple Silicon上开发时,您可能希望添加
arm64-darwin
,对于具有Intel CPUx86_64-darwin
的Mac也是如此。