現在、新しいRailsアプリケーションで問題が発生しています。具体的には:
Rails c
を実行すると、次のようにfileutils gemへの警告リンクが生成されます。
`/usr/local/Cellar/Ruby/2.5.1/lib/Ruby/2.5.0/fileutils.rb:90:` `warning:` `already` initialized constant FileUtils::VERSION
/usr/local/lib/Ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:92: warning: previous definition of VERSION was here
/usr/local/Cellar/Ruby/2.5.1/lib/Ruby/2.5.0/fileutils.rb:1188: warning: already initialized constant FileUtils::Entry_::S_IF_DOOR
/usr/local/lib/Ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1267: warning: previous definition of S_IF_DOOR was here
/usr/local/Cellar/Ruby/2.5.1/lib/Ruby/2.5.0/fileutils.rb:1446: warning: already initialized constant FileUtils::Entry_::DIRECTORY_TERM
/usr/local/lib/Ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1541: warning: previous definition of DIRECTORY_TERM was here
/usr/local/Cellar/Ruby/2.5.1/lib/Ruby/2.5.0/fileutils.rb:1448: warning: already initialized constant FileUtils::Entry_::SYSCASE
/usr/local/lib/Ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1543: warning: previous definition of SYSCASE was here
/usr/local/Cellar/Ruby/2.5.1/lib/Ruby/2.5.0/fileutils.rb:1501: warning: already initialized constant FileUtils::OPT_TABLE
/usr/local/lib/Ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1596: warning: previous definition of OPT_TABLE was here
/usr/local/Cellar/Ruby/2.5.1/lib/Ruby/2.5.0/fileutils.rb:1555: warning: already initialized constant FileUtils::LOW_METHODS
/usr/local/lib/Ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1650: warning: previous definition of LOW_METHODS was here
/usr/local/Cellar/Ruby/2.5.1/lib/Ruby/2.5.0/fileutils.rb:1562: warning: already initialized constant FileUtils::METHODS
/usr/local/lib/Ruby/gems/2.5.0/gems/fileutils-1.1.0/lib/fileutils.rb:1657: warning: previous definition of METHODS was here
このガイドラインhttp://railsapps.github.io/installrubyonrails-mac.html
に概説されているすべての手順に従います。
ガイドラインに従うか、次の手順を実行するだけで問題を再現できます。
観察して対処した後、fileutilsのデフォルトバージョンにはRuby 2.5。*が付属しており、gem update
コマンドで別の新しいバージョン1.1.0がインストールされることがわかりました。したがって、Rails c
を実行すると、fileutils
の2つのバージョンがロードされます。
この問題に対処するために、--default
オプションをgem update
コマンドに追加します。
gem update --default
その結果、gem list | grep fileutils
を実行することで確認できる2つのデフォルトバージョンを取得しました。これは、警告を取り除くことができる唯一の方法です。
mac: gem list | grep fileutils
fileutils (default: 1.1.0, default: 1.0.2)
この質問は、同じ問題が発生する可能性のある人と共有するために、一種の回答で書きます。インターネットでヘルプが見つからなかったので、整理に数時間を費やしました。
注:macOS Sierraでrbenv
の代わりにrvm
を使用すると、同じ問題が発生します。
誰かがそのような問題に対処するためのより良いアプローチを持っているかどうか教えてください。
乾杯、
同じ問題がありました。投稿にない1つのステップは、最初にfileutils gemをアンインストールし、次にデフォルトオプションでgemを更新することです。
gem uninstall fileutils
Successfully uninstalled fileutils-1.1.0
gem update --default
Updating installed gems
Updating fileutils
Fetching: fileutils-1.1.0.gem (100%)
Successfully installed fileutils-1.1.0
これにより、詳細なfileutilsメッセージが削除されました。
更新: gem update --defaultの代わりにgem update fileutils --defaultを実行します。このプロセスは、他のgemでも機能するはずです。これについてMatijs van Zuijlenに感謝します。