ruby2.4.0→ruby2.5.0
Rails4.2.1→Rails4.2.8
のアップデート作業を行なっている最中に表題のエラーが発生するようになりました。
環境情報
※dockerを使用した仮想環境上で動かしています
$ rbenv -v rbenv 1.1.2-17-g7795476 $ ruby -v ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux] $ gem -v 2.5.1 $ bundle -v Bundler version 2.2.20 $ rails -v ※エラーで確認できないがGemfileは4.2.8 Could not find gem 'factory_bot_rails' in rubygems repository https://rubygems.org/ or installed locally. The source does not contain any versions of 'factory_bot_rails' Run `bundle install` to install missing gems.
$ gem env RubyGems Environment: - RUBYGEMS VERSION: 2.5.1 - RUBY VERSION: 2.5.0 (2017-12-25 patchlevel 0) [x86_64-linux] - INSTALLATION DIRECTORY: /opt/rbenv/versions/2.5.0/lib/ruby/gems/2.5.0 - USER INSTALLATION DIRECTORY: /home/userName/.gem/ruby/2.5.0 - RUBY EXECUTABLE: /opt/rbenv/versions/2.5.0/bin/ruby - EXECUTABLE DIRECTORY: /opt/rbenv/versions/2.5.0/bin - SPEC CACHE DIRECTORY: /home/userName/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /opt/rbenv/versions/2.5.0/etc - RUBYGEMS PLATFORMS: - ruby - x86_64-linux - GEM PATHS: - /opt/rbenv/versions/2.5.0/lib/ruby/gems/2.5.0 - /home/userName/.gem/ruby/2.5.0 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /opt/rbenv/versions/2.5.0/bin - /opt/rbenv/libexec - /opt/rbenv/plugins/ruby-build/bin - /opt/rbenv/shims - /opt/rbenv/bin - /usr/local/bin - /bin - /usr/bin - /usr/local/sbin - /usr/sbin - /sbin - /home/userName/.local/bin - /home/userName/bin
行ったこと
※以下バージョンアップの作業過程から記載しています。
・ruby2.4→2.5にアップデートした後にRailsのバージョンアップを実行
Gemfileのrailsのバージョンを「2.4.8」に変更しbundle update
した後のrails app:update
でエラー
Array values in the parameter to `Gem.paths=` are deprecated. Please use a String or nil. An Array ({"GEM_PATH"=>["/opt/rbenv/versions/2.5.0/lib/ruby/gems/2.5.0", "/home/userName/.gem/ruby/2.5.0"]}) was passed in from bin/rails:3:in `load' /opt/rbenv/versions/2.5.0/lib/ruby/gems/2.5.0/gems/bundler-1.16.3/lib/bundler/rubygems_integration.rb:200: warning: constant Gem::ConfigMap is deprecated Error: Command 'app:update' not recognized `
gem関連の警告文はこちらの記事を参考にrubyGemsのバージョンをダウングレードして解消(bundler:1.16.3、rubyGems:2.5.1)
※rubyGemsの元々のバージョンは3.2.20
この状態で動作確認を行おうとしたところ別のエラーが発生
DEPRECATION WARNING: The factory_girl gem is deprecated. Please upgrade to factory_bot. See https://github.com/thoughtbot/factory_bot/blob/v4.9.0/ UPGRADE_FROM_FACTORY_GIRL.md for further instructions. (called from require at /opt/rbenv/versions/2.5.0/lib/ruby/site_ruby/2.5.0/bundler/runtime.rb:66) bundler: failed to load command: unicorn (/opt/rbenv/versions/2.5.0/bin/unicorn) /var/www/journal_api/current/config/initializers/rails_config.rb:1:in `<top (required)>': undefined method `setup' for RailsConfig:Module (NoMethodError)
factory_bot関連のエラーを解消しようとGemfileを変更しbundle install
を実行したところで表題のエラーが発生
ArgumentError: wrong number of arguments (given 1, expected 0) An error occurred while installing factory_bot (5.2.0), and Bundler cannot continue. Make sure that `gem install factory_bot -v '5.2.0' --source 'https://rubygems.org/'` succeeds before bundling.
エラー文に従ってgem installを実行してもArgumentError
$ gem install factory_bot -v '5.2.0' --source 'https://rubygems.org/' ERROR: While executing gem ... (ArgumentError) wrong number of arguments (given 1, expected 0)
調べているとrubyとrubyGemsのバージョンの関係でエラーのようなのですが、rubyGemsのアップデートを行おうとしても同様のエラーが発生します。
$ gem update --system Updating rubygems-update ERROR: While executing gem ... (ArgumentError) wrong number of arguments (given 1, expected 0)
上記のエラーの原因も検索で似たような現象が起きているというだけでそうなのではないかと推測しただけで断定できたわけではありません。
エラーの原因とその解消法についてご教示いただけると大変助かります。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。