Nicht initialisierte Konstante ActiveSupport :: Abhängigkeiten :: Mutex (NameError)
Wenn ich will erstellen Sie eine Ruby on Rails-Projekt, bekomme ich die Meldung unten.
/usr/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:55: uninitialized constant ActiveSupport::Dependencies::Mutex (NameError)
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support.rb:57
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails_generator.rb:31
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /usr/lib/ruby/gems/1.8/gems/rails-2.3.8/bin/rails:15
from /usr/bin/rails:19:in `load'
from /usr/bin/rails:19
Was ist schief gelaufen? Wie kann ich es beheben?
InformationsquelleAutor der Frage Sokmesa Khiev | 2011-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine Inkompatibilität zwischen Rails 2.3.8, und die jüngsten Versionen von RubyGems. Upgrade auf die neueste 2.3-version (2.3.11 wie heute).
InformationsquelleAutor der Antwort John
In Fall können Sie nicht ein upgrade auf Ruby on Rails 2.3.11 (und zu erweitern douglasr Antwort),
thread
muss an der Spitze derboot.rb
. Zum Beispiel:InformationsquelleAutor der Antwort Aaron
War ich in der Lage, dieses Problem zu beheben, durch Downgrade von RubyGems auf 1.5.3, da geschieht es mit RubyGems 1.6.0+ und-Schienen < 2.3.11:
Wenn Sie zuvor heruntergestuft, um eine noch frühere version und möchten ein update auf 1.5.3, erhalten Sie möglicherweise die folgende, wenn Sie versuchen zu laufen, dass:
Wenn Sie, dass Fehler, dann aktualisieren, so dass mit ihm können Sie die version, und dann den downgrade wieder:
InformationsquelleAutor der Antwort Gary S. Weaver
Können Sie sich wahrscheinlich auch um dieses Problem, indem die "Faden" in Ihrer Anwendung als solche:
Als pro die RubyGems-1.6.0 release notes.
InformationsquelleAutor der Antwort douglasr
Wenn Sie wollen, dass Ihre version die gleiche wie Schienen werden 2.3.8 und gem-version wird die aktuellste. Sie können diese Lösung verwenden,Neueste Perle mit Rails2.x. in dieser einige änderungen im boot.rb-Datei und Umgebung.rb-Datei.
require 'thread
' im boot.rb-Datei an der Spitze.und Umgebung.rb-Datei fügen Sie den folgenden code oberhalb der Initialisierung von block.
InformationsquelleAutor der Antwort arunagw
Ich habe vor dieses problem in vielen Gelegenheiten, wenn ich versuche zu starten eine alte rails 2.3.5 Projekt, nachdem er arbeitete mit rails 3>. In meinem Fall das problem zu lösen, muss ich noch ein rubygems-update auf die version 1.4.2, das ist:
InformationsquelleAutor der Antwort Tania R
Wenn Sie mit Radiant CMS, fügen Sie einfach
oben
config/boot.rb
.(Großes Lob an Aaron und nathanvda Antworten.)
InformationsquelleAutor der Antwort thekingoftruth
Wie erwähnt, tritt bei der Verwendung von RubyGems-1.6.0 mit Ruby on Rails-version älter als version 3. Meine app ist mit Ruby, Ruby on Rails 2.3.3 vendored in der /dem Verkäufer des Projektes.
Kein Zweifel, eine Aktualisierung von Ruby on Rails auf eine neuere 2.3.X-version kann auch dieses Problem lösen. Jedoch, dieses problem verhindert, dass Sie ausgeführt Rake zu unvendor Ruby on Rails und aktualisieren Sie es.
Hinzufügen von require 'thread' an die Spitze der Umwelt.rb nicht beheben das Problem für mich. Hinzufügen von require 'thread' /vendor/rails/activesupport/lib/active_support.rb hat das problem zu beheben.
InformationsquelleAutor der Antwort Paul Grayson
Aktualisieren Sie Ihre Ruby on Rails-version ist v3.0.5:
oder v2.3.11:
Wenn das nicht ein neues Projekt müssen Sie aktualisieren Sie Ihre Anwendung entsprechend. Wenn es ein neues Projekt, löschen Sie einfach das Verzeichnis, das Sie erstellt haben und erstellen Sie ein neues Projekt wieder.
InformationsquelleAutor der Antwort Andrew Marshall
update der rubygems
gem update --system
InformationsquelleAutor der Antwort Vishnu Atrai
Ich werde Entsendung meine Lösung für die anderen schlafen-beraubt der Seelen, die es gibt:
Wenn Sie mit RVM -, Doppel-check, dass man in den richtigen Ordner mit den richtigen ruby-version und gemset. Ich hatte eine Reihe von terminal-tabs geöffnet, und einer von Ihnen war in einem anderen Verzeichnis. die Eingabe von "rails-Konsole" produziert den Fehler, da mein Standard-Schienen-Distribution ist 2.3.x.
Bemerkte ich den Fehler auf meiner cd würde auf das richtige Verzeichnis, und meine .rvmrc Datei hat den rest.
RVM ist nicht wie Git. In den git, den Richtungswechsel in ein Gehäuse verpasst es überall. Es ist buchstäblich das umschreiben der Dateien in Frage. RVM, auf der anderen Seite, ist nur setzen von shell-Variablen, und muss für jede neue shell, die Sie öffnen.
Im Falle Sie nicht vertraut sind mit .rvmrc, können Sie eine Datei mit diesem Namen in ein beliebiges Verzeichnis, und rvm werden es abholen und verwenden Sie die version/gemset dort genannten, wenn Sie auf das Verzeichnis ändern. Hier ist ein Beispiel .rvmrc Datei:
Wechselt die neueste version von ruby 1.9.2 in Ihrem RVM-Sammlung, mit dem gemset "Schildkröten". Jetzt können Sie öffnen, ein hundert tabs im Terminal (als ich am Ende tun) und nie über die ruby-version zeigt.
InformationsquelleAutor der Antwort Jaime Bellmyer