【问题标题】:Rake gives a pile of warnings, but eventually worksRake 给出了一堆警告,但最终有效
【发布时间】:2018-05-27 12:31:18
【问题描述】:

我不知道我的应用到底发生了什么,可能是因为最近运行了bundle install,但是每个rake 命令前面都有一堆警告。例如,运行rake db:migrate(我的项目在/railsProjects/matal-x下):

/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:3: warning: already initialized constant Rake::VERSION
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:3: warning: previous definition of VERSION was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:6: warning: already initialized constant Rake::Version::MAJOR
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:6: warning: previous definition of MAJOR was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:6: warning: already initialized constant Rake::Version::MINOR
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:6: warning: previous definition of MINOR was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:6: warning: already initialized constant Rake::Version::BUILD
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:6: warning: previous definition of BUILD was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:6: warning: already initialized constant Rake::Version::OTHER
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:6: warning: previous definition of OTHER was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:8: warning: already initialized constant Rake::Version::NUMBERS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/version.rb:8: warning: previous definition of NUMBERS was here
WARNING: Possible conflict with Rake extension: String#ext already exists
WARNING: Possible conflict with Rake extension: String#pathmap already exists
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/linked_list.rb:110: warning: already initialized constant Rake::LinkedList::EMPTY
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/linked_list.rb:110: warning: previous definition of EMPTY was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/scope.rb:41: warning: already initialized constant Rake::Scope::EMPTY
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/scope.rb:41: warning: previous definition of EMPTY was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_utils.rb:10: warning: already initialized constant FileUtils::RUBY
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_utils.rb:10: warning: previous definition of RUBY was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_utils.rb:109: warning: already initialized constant FileUtils::LN_SUPPORTED
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_utils.rb:109: warning: previous definition of LN_SUPPORTED was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_utils_ext.rb:17: warning: already initialized constant Rake::FileUtilsExt::DEFAULT
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_utils_ext.rb:17: warning: previous definition of DEFAULT was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:44: warning: already initialized constant Rake::FileList::ARRAY_METHODS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:44: warning: previous definition of ARRAY_METHODS was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:47: warning: already initialized constant Rake::FileList::MUST_DEFINE
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:47: warning: previous definition of MUST_DEFINE was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:51: warning: already initialized constant Rake::FileList::MUST_NOT_DEFINE
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:51: warning: previous definition of MUST_NOT_DEFINE was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:55: warning: already initialized constant Rake::FileList::SPECIAL_RETURN
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:55: warning: previous definition of SPECIAL_RETURN was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:61: warning: already initialized constant Rake::FileList::DELEGATING_METHODS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:61: warning: previous definition of DELEGATING_METHODS was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:86: warning: already initialized constant Rake::FileList::GLOB_PATTERN
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:86: warning: previous definition of GLOB_PATTERN was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:381: warning: already initialized constant Rake::FileList::DEFAULT_IGNORE_PATTERNS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:381: warning: previous definition of DEFAULT_IGNORE_PATTERNS was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:387: warning: already initialized constant Rake::FileList::DEFAULT_IGNORE_PROCS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/file_list.rb:387: warning: previous definition of DEFAULT_IGNORE_PROCS was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/promise.rb:12: warning: already initialized constant Rake::Promise::NOT_SET
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/promise.rb:12: warning: previous definition of NOT_SET was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/application.rb:13: warning: already initialized constant Rake::CommandLineOptionError
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/application.rb:13: warning: previous definition of CommandLineOptionError was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/application.rb:41: warning: already initialized constant Rake::Application::DEFAULT_RAKEFILES
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/application.rb:41: warning: previous definition of DEFAULT_RAKEFILES was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/task_arguments.rb:108: warning: already initialized constant Rake::EMPTY_TASK_ARGS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/task_arguments.rb:108: warning: previous definition of EMPTY_TASK_ARGS was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/invocation_chain.rb:55: warning: already initialized constant Rake::InvocationChain::EMPTY
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/invocation_chain.rb:55: warning: previous definition of EMPTY was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/early_time.rb:21: warning: already initialized constant Rake::EARLY
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/early_time.rb:21: warning: previous definition of EARLY was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/late_time.rb:17: warning: already initialized constant Rake::LATE
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/late_time.rb:17: warning: previous definition of LATE was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:4: warning: already initialized constant Rake::Backtrace::SYS_KEYS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:4: warning: previous definition of SYS_KEYS was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:5: warning: already initialized constant Rake::Backtrace::SYS_PATHS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:5: warning: previous definition of SYS_PATHS was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:8: warning: already initialized constant Rake::Backtrace::SUPPRESSED_PATHS
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:8: warning: previous definition of SUPPRESSED_PATHS was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:12: warning: already initialized constant Rake::Backtrace::SUPPRESSED_PATHS_RE
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:12: warning: previous definition of SUPPRESSED_PATHS_RE was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:16: warning: already initialized constant Rake::Backtrace::SUPPRESS_PATTERN
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake/backtrace.rb:16: warning: previous definition of SUPPRESS_PATTERN was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake.rb:70: warning: already initialized constant FileList
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake.rb:70: warning: previous definition of FileList was here
/home/guy/railsProjects/matal-x/vendor/ruby/2.1.0/gems/rake-12.3.0/lib/rake.rb:71: warning: already initialized constant RakeFileUtils
/home/guy/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0/gems/rake-12.3.0/lib/rake.rb:71: warning: previous definition of RakeFileUtils was here

最终命令正在运行(即列被添加到表中)但这很奇怪。

我在 ruby​​ 2.1.1 上运行 Rails 4.2.5(使用 rbenv),所以看到 gem 安装在 2.1.0 下我有点惊讶,但我不确定这与我的问题有什么关系因为我很久没有更新我的 ruby​​ 版本了。

我已经尝试使用 gem uninstall 删除 rake 然后重新安装,甚至拼命尝试 gem clean 现在没有任何效果。当我尝试运行 bundle installbundle update 时,它什么也没做,即使我删除了 Gemfile.lock。

有什么想法吗?恢复到较旧的提交意味着大约两周的工作丢失或至少被重写。

【问题讨论】:

  • 这是在开发环境中吗?确保应用不会急切加载并且不会缓存类
  • 是的,这是开发环境。模型/控制器中的急切加载与它有什么关系?
  • 如果你改为bundle exec rake task,你会得到错误吗?
  • 我得到了类似的错误,这次是关于rb-readlineo_O

标签: ruby-on-rails ruby rake bundler rbenv


【解决方案1】:

不要运行rake,而是尝试bin/rake(假设您从项目的根目录开始)。如果 bin/rake 由于某种原因消失了,您可以在其他地方创建一个新的 Rails 项目并从那里复制它。

在 Rails 5 上,您还可以运行 rails test(或 bin/rails test)。

我认为这可能与最新版本的 bundler 有关,该版本进行了一些重大更改。您也可以将 bundler 恢复到 1.15.x(但我还没有测试过)。

【讨论】:

  • 好吧,运行 bin/rake 没有错误,谢谢。我会尝试将 bundler 恢复到旧版本并报告。
猜你喜欢
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 2018-07-21
  • 2021-05-23
  • 1970-01-01
  • 2019-05-07
  • 2018-08-13
相关资源
最近更新 更多