2011-10-08 47 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 ... 

的需要。