Frage

Ich bin derzeit auf Dreamhost versucht, eine Rails 2.3.5 app.

Hier ist die situation, Dreamhost ' s Server Rails 2.2.2 installiert.Natürlich, ich kann nicht update a shared host rails-version, so dass ich fror, meine Rails-in Anbieter.Rails 2.3.5 erfordert die rack-v1.0.1 gem.Dreamhost verwendet die rack-v1.0.0 gem.Also, wenn ich versuche, Sie zu definieren:

config.gem "rack", :version => "1.0.1"

Ich bekomme:

can't activate rack (~> 1.0.1, runtime) for [], already activated rack-1.0.0 for []

Also, was ich wirklich tun müssen, ist die bypass-meine app-Anfrage zu verwenden, 1.0.1, und verwenden Sie Dreamhost ist 1.0.0.Weiß jemand, wie man dies konfigurieren?Ist es überhaupt möglich?Danke für die Hilfe.

War es hilfreich?

Lösung

Sie werden fast immer wollen, entpacken Sie die Edelsteine, Ihre Anwendung hängt davon ab, in die vendor Ordner.Sie können tun, dass mit diesem rake Befehl:

rake gems:unpack:dependencies

So erstellen Sie einen Ordner vendor/gems unter der Anwendung root-Ordner und entpacken Sie alle der Juwelen, die Sie deklariert mit der config.gem Befehl hinein.

Dies wird nicht nur Ihr problem lösen, mit abweichenden rack Versionen, sondern auch sicherstellen, dass Sie den exakt gleichen Versionen der Edelsteine in der Produktion, wie Sie mit Hilfe in der Entwicklung, die können verhindern, dass viele potenzielle Kopfschmerzen in der Zukunft.

Andere Tipps

Dreamhost hat dieses Problem angesprochen auf Ihre Unterstützung wiki jetzt.

http://wiki.dreamhost.com/Ruby_on_Rails#Rails_2.3.5_-_Rack_1.0_already_activated_.28fix.29

Auf dieser Seite:

Bei der Verwendung von Rails 2.3.5 bekommst du ein problem von Passagier-zu sagen Rack-1.0.1 kann nicht geladen werden, da Rack-1.0 ist bereits aktiviert.

Eine Möglichkeit, dies zu lösen, ist durch gefrieren Schienen-und Auspacken des Rack-gem-vendor/gems/rack-1.0.1

Einmal Schienen und Racks sind in der vendor/rails und vendor/gems/rack-1.0.1, die Sie ändern müssen action_controller in der Datei:vendor/rails/actionpack/lib/action_controller.rb

In-line-Nummern 34 und 35 müssen auskommentiert werden, und fügen Sie die folgende zu laden rack from vendor/gems

   load "#{RAILS_ROOT}/vendor/gems/rack-1.0.1/lib/rack.rb"

Das Ergebnis sollte in etwa so Aussehen:

   #gem 'rack', '~> 1.0.1'
   #require 'rack'
   load "#{RAILS_ROOT}/vendor/gems/rack-1.0.1/lib/rack.rb"

Das eigentliche problem ist, dass der Passagier schon lädt Rack-1.0, und ich glaube, so muss der Passagier Last 1.0.1 damit diese hack Weg zu gehen.

rake gems:unpack:dependencies nicht erlauben, Sie zu entpacken rake in Ihrem vendor/gems Ordner.

Für die Dreamhost Problem, Sie müssen tun, was Matt sagte.Freeze-Schienen 2.3.4.

rake rails:freeze:gems VERSION=2.3.4

Dreamhost verwendet eine ältere version der Passagier die preloads rack-1.0.0.Sie können nicht Last-rack-1.0.1 einmal rack-1.0.0 wurde vorinstalliert.Daher, die neueste version von Schienen möglich, DH Rails-2.3.4-und Rack-1.0.0.

ich in das gleiche Problem lief, wenn ich ein Upgrade auf 2.3.5 versucht.

Ich frage mich, was Server, den Sie sind nach wie vor auf das läuft Rails 2.2.2? Ich dachte, Dreamhost alle bis 2.3.4 jetzt bewegt hatte. Ich beschwerte mich bei ihnen vor 3 Monaten und aktualisiert sie Passagier auf meinem Server nach dem Tag, so konnte ich die aktuelle Rails-Version installieren. Also würde ich Ihnen empfehlen, ein Support-Ticket-Datei, wenn Rails 2.3.5 für Ihre Anwendung von entscheidender Bedeutung ist. Aber es gab nicht viele Änderungen zwischen 2.3.4 und 2.3.5, so stehen die Chancen, Ihre App genauso gut auf 2.3.4 laufen. Haben Sie versucht, es auf verkauft 2.3.4?

Laufen

Es geht nicht um ein fehlendes Juwel, es geht um ein Juwel, das zweimal mit unpassenden Versionen benötigt wird. Rake Edelsteine: auspacken. Abhängigkeiten das nicht beheben (ich versuchte)

Ich vermute, es ist ein Problem mit Dreamhost des Passagiers Version wieder. Mein Server (buenosaires) hat Passagier 2.2.5. Neueste Passagier-Version ist 2.2.7.

Ein einfaches gem update Rack für mich nicht funktioniert, weil es scheint, dass Rails 2.3.5 1.0.1 will speziell Rack. Also, wenn ich ein Juwel Update Rack -v tat = 1.0.1, Rails 2.3.5 gestartet rechten Seite.

Offenbar diese ganze Sache mit Rails Rack 1.0.1 wollen eine geringe Abhängigkeit Anforderung Fehler in Action, die ziemlich leicht gelöst werden können.

Für mich war es genug vendor/rails/actionpack/lib/action_controller.rb auf Linie bearbeiten 34 von gem 'rack', '~> 1.0.1' gem 'rack', '~> 1.0' und das Problem ging weg.

Siehe auch: https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3685-actionpack-235-gem-declares-incompatibility-with-rack-110

Dreamhost aktualisiert Rack- und Rails: http: // www .dreamhoststatus.com / 2009/12/21 / Rubin-Edelstein-Updates /

Ich denke, das löst es.

Ich denke, dass im moment das beste wäre um die Fixierung wieder aufheben alles und nutzen, was auf dreamhost.Sie haben derzeit rails 2.3.4 und wenn Sie können warten ein oder zwei Tage, dreamhost ist Upgrade von rails-Edelsteine, um 2.3.5 (es sollte aktualisiert wurden bereits gestern, am 21ten Dezember - aber für einige Grund, Sie nicht erklären, Sie sind noch auf 2.3.4).

FWIW, kann ich bestätigen, dass das Juwel Einfrieren das Problem nicht lösen; in der Tat, wo vor meiner deploy (mit DH-Rack 0.3.0, irgendwie!) explodiert, nun mein Spin-up bläst mit dem gleichen Fehler oben oben gesehen. Vielleicht ist es endlich Zeit, mein Spielzeug / Proof of Concept App zu ‚echten‘ Hosting zu bewegen, wenn ich irgendeine Arbeit erledigen will.

UPDATE: Mein Server aktualisiert wurde auf Rack-1.0.1 am 24. Dezember 2009, für mich das Problem zu lösen. Wenn Sie noch Probleme auf Ihrem Konto auftreten würde ich empfehlen, Unterstützung Messaging; sie waren ziemlich reaktions in meinem Fall (mit E-Mail, nicht Aktion, aber für den Preis kann man wirklich alles nicht hat).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top