2010-04-10 9 views
5

Ho le seguenti gemme definiti nel mio file environment.rb:gemme disimballaggio [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/' 

li ho installato sul mio computer locale e tutto funziona bene. Dato che sto lavorando su un server condiviso (DreamHost), ho bisogno di decomprimere queste gemme per farle funzionare (non posso installarle come ho fatto sul mio computer per farle funzionare).

Prima di caricare, ho eseguito il seguente sulla mia macchina locale:

rake gems:unpack 

Questo ha creato le seguenti cartelle in /vender/gems:

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

in modo che appaia come se fossero tutti lì.

Quando eseguo rake db:migrate sul server, però, mi vengono queste seguente errore:

Missing these required gems: 
    pauldix-feedzirra 

Per qualche ragione, la feedzirra scompattato gemma non viene rilevato. Qualcuno potrebbe offrire un indizio sul perché questo sta accadendo e su una possibile soluzione?

Grazie!


EDIT: Grazie, ma il codice a mettere in environment.rb non funziona, e bundler non installare correttamente sul mio server. Qualche altro suggerimento?

risposta

2

Questo non è esattamente una risposta, ma da quando ho mai potuto ottenere config.gem per funzionare correttamente, mi consiglia di utilizzare Bundler ogni volta che posso. Funziona e gestisce le interdipendenze tra le gemme. Sostituisce anche config.gem in Rails 3 da quello che ho capito.

0

Prova Following.put questo codice in envoirment.rb

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

Grazie, ma questo non sembra funzionare ... –

0

Non so se i miei suggerimenti sono utili, perché feedzirra è un'estensione compilata (contro CURL credo). La soluzione migliore è installare normalmente feedzirra gem (si compilerà da sé) sul tuo server.


Non hai installato (spacchettato) gemma feedzirra, ma pauldix-feedzirra. Probabilmente hai anche bisogno di feedzirra disfatto.

tenta di aggiungere

config.gem feedzirra 

in environment.rb ed eseguire localmente

rake gems:install 
rake gems:unpack 

Sembra feedzirra gemma spacchettato manca in /vendor/plugins. Guarda se feedzirra verrà copiato lì dopo questi comandi ...

1

Ho notato due cose su feedzirra: in primo luogo, dipende da altre 3 gemme, e almeno una di quelle crea estensioni native. E lo chiamerò "feedzirra" - Non sono un fan del fiasco di autopackaging sconsiderato di Github.

Se fosse solo il primo, quindi racimolare le gemme: spacchettare: le dipendenze farebbero il trucco.

Tuttavia, almeno il cordolo (che dipende da feedzirra) sta sviluppando le estensioni e queste non possono semplicemente essere decompresse. Potresti installare Dreamhost per installarli (buona fortuna) o installarli nella directory gem locale dell'utente.

Per fare ciò, avrete bisogno di aggiornare il tuo .gemrc ed essere sicuri che comprende una linea come: : user_install: vero

Poi rastrello gemme: installare

A meno che il vostro ambiente di distribuzione ha vinto Ti consentiamo di creare file eseguibili, nel qual caso dovrai eseguire il bombardamento per un pacchetto meno limitato. So per certo che Dreamhost fornisce pacchetti che consentiranno di estendere le gemme.

(E c'è la questione separata di libcurl essere schierato ...)