Vea*_*sna 39 ruby ruby-on-rails rvm rbenv fileutils
我目前遇到了新的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
Run Code Online (Sandbox Code Playgroud)
我按照本指南中概述的所有步骤进行操作http://railsapps.github.io/installrubyonrails-mac.html.
您可以按照指南或以下步骤复制问题:
经过观察和解决之后,我发现Ruby 2.5的默认版本的fileutils.*是1.0.2,并且该gem update命令安装了另一个更新的版本1.1.0.因此,fileutils当我运行时,有两个版本的加载rails c.
为了解决这个问题,我--default在gem update命令中添加了选项.
gem update --default
Run Code Online (Sandbox Code Playgroud)
结果,我得到了两个默认版本,可以通过运行看到gem list | grep fileutils.这是我能摆脱警告的唯一方法.
mac: gem list | grep fileutils
fileutils (default: 1.1.0, default: 1.0.2)
Run Code Online (Sandbox Code Playgroud)
我写这个问题时,回答只是为了与可能遇到同样问题的人分享.我花了几个小时来解决它,因为我在互联网上找不到任何帮助.
注意:当我使用rbenv而不是rvm在macOS Sierra上时,会出现同样的问题.
如果有人有更好的方法来处理这样的问题,请告诉我.
干杯,
Dan*_*lum 87
我遇到过同样的问题.您的帖子中缺少的一步是首先卸载fileutils gem,然后使用默认选项卸载gem update.
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
Run Code Online (Sandbox Code Playgroud)
那摆脱了冗长的fileutils消息给我.
小智 33
这个对我有用:
bundle clean --force
Run Code Online (Sandbox Code Playgroud)
bundle clean(1)
清理 Bundler 目录中未使用的 gem
| 归档时间: |
|
| 查看次数: |
9415 次 |
| 最近记录: |