it-swarm.com.de

Rails 5.2.0 with Ruby 2.5.1 console - `warning:` `already` initialized constant FileUtils :: VERSION

Ich habe derzeit ein Problem mit meiner neuen Rails Anwendung, genauer:

  • Schienen 5.2.0
  • Ruby 2.5.1p57 (2018-03-29 Revision 63029) [x86_64-darwin17]
  • rvm 1.29.4 (spätestens) von Michal Papis, Piotr Kuczynski und Wayne E. Seguin [ https://rvm.io]

Wenn ich Rails c Ausführe, werden folgende Warnlinks zu fileutils gem angezeigt:

`/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

Ich folge allen Schritten, die in dieser Richtlinie beschrieben sind http://railsapps.github.io/installrubyonrails-mac.html.

Sie können das Problem replizieren, indem Sie einfach die Richtlinie befolgen oder die folgenden Schritte ausführen:

  1. rvm installieren Ruby-2.5.1
  2. Rails neue App
  3. cD-App
  4. edelstein Update
  5. bundle-Update

Nach dem Beobachten und Umgehen habe ich festgestellt, dass die Standardversion von fileutils Ruby 2.5. * Ist 1.0.2 und der Befehl gem update Installiert eine andere neuere Version 1.1 .0 Daher werden beim Ausführen von Rails c Zwei Versionen von fileutils geladen.

Um dieses Problem zu beheben, füge ich die Option --default An den Befehl gem update An.

gem update --default

Als Ergebnis habe ich zwei Standardversionen erhalten, die durch Ausführen von gem list | grep fileutils Angezeigt werden. Nur so kann ich die Warnung loswerden.

mac: gem list | grep fileutils
fileutils (default: 1.1.0, default: 1.0.2)

Ich schreibe diese Frage mit einer Art Antwort, um sie mit jemandem zu teilen, der das gleiche Problem hat. Ich habe Stunden damit verbracht, es zu klären, da ich im Internet keine Hilfe gefunden habe.

Hinweis: Das gleiche Problem tritt auf, wenn ich rbenv anstelle von rvm verwende. auf macOS Sierra.

Bitte lassen Sie mich wissen, ob jemand einen besseren Ansatz hat, um mit einem solchen Problem umzugehen.

Prost,

34
Veasna

Ich hatte das gleiche Problem. Der eine Schritt, der in Ihrem Beitrag fehlt, besteht darin, zuerst das Fileutils Gem zu deinstallieren und dann das Gem-Update mit der Standardoption durchzuführen.

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

Das hat die wortreichen fileutils Nachrichten für mich losgeworden.

pdate: Anstelle von gem update --default gem update fileutils --default. Dieser Prozess sollte auch für andere Edelsteine ​​funktionieren. Vielen Dank an Matijs van Zuijlen dafür.

70
Dan McCallum