Направляющие 3.0 и Ruby 1.9.2rc: возврат команд Граблей 'уже инициализировал постоянный' и уровень стека слишком глубокие ошибки. Любые идеи

Я пытаюсь выполнить направляющие 3 беты 4 и Ruby 1.9.2rc на Ubuntu 10.04. Это работало первоначально, но после выполнения моей первой установки/пакета пакета, я теперь получаю следующие ошибки во всех проектах направляющих. Даже основные 'направляющие новый testproject', сопровождаемый граблями, поднимают сообщения об ошибках.

Короче говоря, я озадачен. Любая справка относительно того, что могло вызывать это, будет очень цениться.

Единственная вещь, которую я заметил - который может или не может быть релевантным - состоит в том, что каталог в ~/.bundle файлы является рубиновым/1.9.1. 1.9.1 не установлен на моей машине - только 1.9.2rc. рубин-v возвращает 1.9.2

(in /home/john/Websites/sandbox/testerino)
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:32: warning: already initialized constant RAKEVERSION
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake/alt_system.rb:32: warning: already initialized constant WINDOWS
WARNING: Possible conflict with Rake extension: String#ext already exists
WARNING: Possible conflict with Rake extension: String#pathmap already exists
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:404: warning: already initialized constant EMPTY_TASK_ARGS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:452: warning: already initialized constant EMPTY
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:960: warning: already initialized constant RUBY_EXT
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:964: warning: already initialized constant RUBY
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1033: warning: already initialized constant LN_SUPPORTED
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1242: warning: already initialized constant ARRAY_METHODS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1245: warning: already initialized constant MUST_DEFINE
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1249: warning: already initialized constant MUST_NOT_DEFINE
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1253: warning: already initialized constant SPECIAL_RETURN
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1259: warning: already initialized constant DELEGATING_METHODS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1569: warning: already initialized constant DEFAULT_IGNORE_PATTERNS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1575: warning: already initialized constant DEFAULT_IGNORE_PROCS
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1612: warning: already initialized constant FileList
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1638: warning: already initialized constant EARLY
/home/john/.bundle/ruby/1.9.1/gems/rake-0.8.7/lib/rake.rb:1968: warning: already initialized constant DEFAULT_RAKEFILES
rake aborted!
stack level too deep
25
задан PlankTon 6 July 2010 в 04:28
поделиться

2 ответа

Похоже на странный рекурсивный require .

Вы пытались удалить все версии rake и переустановить? В 1.9.2rc есть ошибка, влияющая на загрузку гемов , так что может быть? Я не смотрел на нее внимательно, так как многие люди уже внимательно следят за ней ...

Примечание : 1.9.1 - это версия API, поэтому она верна.

1
ответ дан 28 November 2019 в 18:13
поделиться

Я тоже столкнулся с этой проблемой. Похоже, что это не связано с конкретными версиями rails или ruby, которые вы упоминаете, которые отличаются от тех, которые я использую (Rails 2.3.8, Rake 0.8.7, Ruby 1.9.1p378). Похоже, это связано с тем, что bundler и rake плохо работают вместе.

Решение, которое сработало для меня, упоминается в нижней части этого тикета на маяке. Вот краткая версия:

  • Запустите "bundle exec bash"; посмотрите, работает ли теперь rake - если работает,
  • Убедитесь, что окружения bash, до и после, одинаковы, обратившись к команде env и изменив ~/.bashrc или ~/.bash_profile соответствующим образом.

Как только вы это сделаете, вы немного испортите bundler. В этот момент вам придется очистить RUBYOPT, чтобы запустить команду bundle:

RUBYOPT= bundle install --relock

EDIT:

Подумав об этом немного больше, я не уверен, что это лучший способ решения этой конкретной проблемы. Вы можете попробовать совет Хирала Десаи и некоторые другие ответы, прежде чем прибегать к этому подходу, поскольку он изменяет окружение.

31
ответ дан 28 November 2019 в 18:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: