2011-10-08 43 views
0

简称路径:Rails的耙给冲突消息(导轨3.1)

[email protected]:~/Dropbox_not_syncd/webs/3/tdd/rubyists$ rake db:create 
.../rake/version.rb:4: warning: already initialized constant MAJOR 
.../rake/version.rb:5: warning: already initialized constant MINOR 
.../rake/version.rb:6: warning: already initialized constant BUILD 
.../rake/version.rb:3: warning: already initialized constant NUMBERS 
.../rake/version.rb:9: warning: already initialized constant VERSION 
.../rake.rb:26: warning: already initialized constant RAKEVERSION 
.../rake/early_time.rb:17: warning: already initialized constant EARLY 
.../rake/alt_system.rb:32: warning: already initialized constant WINDOWS 
.../rake/application.rb:28: warning: already initialized constant DEFAULT_RAKEFILES 
WARNING: Possible conflict with Rake extension: String#ext already exists 
WARNING: Possible conflict with Rake extension: String#pathmap already exists 
.../rake/task_arguments.rb:73: warning: already initialized constant EMPTY_TASK_ARGS 
.../rake/invocation_chain.rb:49: warning: already initialized constant EMPTY 
.../rake/file_utils.rb:10: warning: already initialized constant RUBY 
.../rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED 
.../rake/dsl_definition.rb:143: warning: already initialized constant Commands 
.../rake/file_list.rb:44: warning: already initialized constant ARRAY_METHODS 
.../rake/file_list.rb:47: warning: already initialized constant MUST_DEFINE 
.../rake/file_list.rb:51: warning: already initialized constant MUST_NOT_DEFINE 
.../rake/file_list.rb:55: warning: already initialized constant SPECIAL_RETURN 
.../rake/file_list.rb:61: warning: already initialized constant DELEGATING_METHODS 
.../rake/file_list.rb:364: warning: already initialized constant DEFAULT_IGNORE_PATTERNS 
.../rake/file_list.rb:370: warning: already initialized constant DEFAULT_IGNORE_PROCS 
.../rake.rb:64: warning: already initialized constant FileList 
.../rake.rb:65: warning: already initialized constant RakeFileUtils 
rake aborted! 
stack level too deep 

(See full trace by running task with --trace) 

完整路径:

@michael-laptop:~/Dropbox_not_syncd/webs/3/tdd/rubyists$ rake db:create 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:4: warning: already initialized constant MAJOR 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:5: warning: already initialized constant MINOR 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:6: warning: already initialized constant BUILD 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:3: warning: already initialized constant NUMBERS 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/version.rb:9: warning: already initialized constant VERSION 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:26: warning: already initialized constant RAKEVERSION 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/early_time.rb:17: warning: already initialized constant EARLY 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/application.rb:28: warning: already initialized constant DEFAULT_RAKEFILES 
WARNING: Possible conflict with Rake extension: String#ext already exists 
WARNING: Possible conflict with Rake extension: String#pathmap already exists 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/task_arguments.rb:73: warning: already initialized constant EMPTY_TASK_ARGS 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/invocation_chain.rb:49: warning: already initialized constant EMPTY 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:10: warning: already initialized constant RUBY 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_utils.rb:84: warning: already initialized constant LN_SUPPORTED 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/dsl_definition.rb:143: warning: already initialized constant Commands 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:44: warning: already initialized constant ARRAY_METHODS 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:47: warning: already initialized constant MUST_DEFINE 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:51: warning: already initialized constant MUST_NOT_DEFINE 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:55: warning: already initialized constant SPECIAL_RETURN 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:61: warning: already initialized constant DELEGATING_METHODS 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:364: warning: already initialized constant DEFAULT_IGNORE_PATTERNS 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake/file_list.rb:370: warning: already initialized constant DEFAULT_IGNORE_PROCS 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:64: warning: already initialized constant FileList 
/home/me/.rvm/gems/[email protected]/gems/rake-0.9.2/lib/rake.rb:65: warning: already initialized constant RakeFileUtils 
rake aborted! 
stack level too deep 

(See full trace by running task with --trace) 
+2

您是否尝试过[Rake error - stack level too deep](http://stackoverflow.com/questions/7631263/rake-error-stack-level-too-deep)?并且提示使用'bundle exec rake ...'而不是'rake ...? ?有关更多信息,请参阅[Yehuda Katz的博客文章](http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/)。 – mliebelt

+0

是捆绑exec执行。谢谢。 (见下文)。 –

回答

1

bundle exec rake db:migrate应该可以解决这个错误。我刚才遇到了同样的事情,这为我解决了这个问题。

+0

我不喜欢使用bundle exec,因为我总是能够在没有它的情况下工作。但我会接受。将给你的支票,如工作。 –

+0

如果你不想使用'bundle exec',你可以做'gem install rake -v(version)'...基本上安装和你的应用捆绑在一起的'rake',这样你就可以使用你的系统的'rake'而不是你的应用程序的版本。 – bricker

1

作为一个附注,RVM不再将rake安装到全局gemset中,以便与每个gemset一起用于特定的ruby。这是密切相关的,因为我们这样做是为了您可以直接通过Gemfile和/或gemset安装耙式PER-PROJECT。

我们高度鼓励每个项目的.rvmrc文件,以便将每个项目的宝石隔离为其特定的宝石集分配。这使A)被污染的“默认”和/或“全球”,或B)污染其他宝石。

对于每个安装的Ruby,应该在'全局'gemset中的唯一宝石应该是捆绑器。

rvm [email protected] exec rvm gemset empty && rvm [email protected] exec gem install bundler && rvm --create use [email protected] && gem list -l 

会证明这是非常有效的。另外,通过这样做可以有效地消除对

bundle exec ... 

的需要。