2010-04-10 13 views
5

Ich habe folgende Edelsteine ​​in meiner environment.rb-Datei definiert:Auspacken Edelsteine ​​[Rails 2.3.5]

config.gem "authlogic" 
    config.gem "paperclip" 
    config.gem "pauldix-feedzirra", :lib => "feedzirra", :source => "http://gems.github.com" 
    config.gem 'whenever', :lib => false, :source => 'http://gemcutter.org/' 

ich sie auf meinem lokalen Computer installiert haben und alles gut funktioniert. Da ich an einem Shared-Server (DreamHost) arbeite, muss ich diese Edelsteine ​​entpacken, damit sie funktionieren (ich kann sie nicht wie auf meinem eigenen Computer installieren, um sie zum Laufen zu bringen).

Vor dem Hochladen lief ich folgende auf meinem lokalen Rechner:

rake gems:unpack 

Der folgenden Ordner in /vender/gems erstellt:

authlogic-2.1.3, paperclip-2.3.1.1, pauldix-feedzirra-0.0.18, whenever-0.4.1 

So sieht es aus wie sie alle da sind.

Wenn ich rake db:migrate auf dem Server laufen, obwohl ich diese folgende Fehlermeldung erhalten:

Missing these required gems: 
    pauldix-feedzirra 

Aus irgendeinem Grund entpackt die feedzirra Juwel nicht erkannt wird. Könnte jemand einen Hinweis darauf geben, warum dies geschieht und eine mögliche Lösung?

Danke!


EDIT: Danke, aber der Code in environment.rb setzen funktioniert nicht, und Bündler nicht richtig auf meinem Server installieren. Irgendwelche anderen Vorschläge?

Antwort

2

Dies ist nicht gerade eine Antwort, aber da ich nie config.gem richtig arbeiten könnte, empfehle ich Bundler verwenden, wann immer ich kann. Es funktioniert einfach und es funktioniert gut mit Interdependenzen zwischen Edelsteinen. Es ersetzt auch config.gem in Rails 3 von dem, was ich verstehe.

0

Try Following.put diesen Code in envoirment.rb

config.load_paths += Dir["#{RAILS_ROOT}/vendor/gems/**"].map do |dir| 
    File.directory?(lib = "#{dir}/lib") ? lib : dir 
    end 
+0

Danke, aber das scheint nicht zu funktionieren ... –

0

Ich weiß nicht, ob meine Hinweise nützlich sind, weil feedzirra kompilierte Erweiterung ist (gegen CURL denke ich). Bessere Lösung ist normalerweise feedzirra gem (es wird sich selbst kompilieren) auf Ihrem Server zu installieren.


Sie haben nicht installiert (unverpackt) fedzirra gem, aber pauldix-feedzirra. Wahrscheinlich brauchst du auch feedzirra ausgepackt.

Versuchen

config.gem feedzirra 

in environment.rb hinzuzufügen und lokal

rake gems:install 
rake gems:unpack 

Es sieht aus wie feedzirra entpackten Juwel fehlt in /vendor/plugins laufen. Schauen Sie, ob feedzirra dort nach diesen Befehlen kopiert wird ...

1

Ich merke zwei Dinge über feedzirra: Erstens hängt es von 3 anderen Edelsteinen ab, und mindestens einer dieser baut native Erweiterungen. Und ich werde es "Feedzirra" nennen - ich bin kein Fan von Githubs schlecht durchdachtem Autopackaging-Fiasko.

Wenn es nur der ehemalige wäre, dann Rake Gems: entpacken: Abhängigkeiten würden den Trick tun.

Allerdings baut zumindest curb (von dem feedzirra abhängt) Erweiterungen, und diese können nicht einfach ausgepackt werden. Du kannst DreamHost entweder dazu bringen, sie zu installieren (viel Glück) oder sie im lokalen Edelsteinverzeichnis deines Benutzers installieren.

, das zu tun, müssen Sie Ihre .gemrc aktualisieren und sicher sein, dass es eine Zeile wie beinhaltet: : user_install: true

Dann Rake Edelsteine: install

Es sei denn, Ihre Umgebung Einsatz gewonnen Wenn Sie keine ausführbaren Dateien erstellen möchten, müssen Sie ein weniger eingeschränktes Paket bereitstellen. Ich weiß, dass Dreamhost Pakete zur Verfügung stellt, die Erweiterungen ermöglichen.

(Und da ist die separate Ausgabe von libcurl im Einsatz ...)

Verwandte Themen