2010-04-10 4 views
5

Je les gemmes suivantes définies dans mon dossier environment.rb:gemmes Déballer [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/' 

je les ai installé sur mon ordinateur local et tout fonctionne bien. Comme je travaille sur un serveur partagé (DreamHost), j'ai besoin de décompresser ces gemmes pour les faire fonctionner (je ne peux pas les installer comme sur mon propre ordinateur pour les faire fonctionner).

Avant le téléchargement, je courais le suivant sur ma machine locale:

rake gems:unpack 

Cela a créé les dossiers suivants dans /vender/gems:

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

Donc on dirait qu'ils sont tous là.

Quand je lance rake db:migrate sur le serveur, bien que, je reçois ces erreurs suivantes:

Missing these required gems: 
    pauldix-feedzirra 

Pour une raison quelconque, la pierre précieuse feedzirra décompressé est pas détecté. Quelqu'un pourrait-il donner une idée de la raison pour laquelle cela se produit et une solution potentielle?

Merci!


EDIT: Merci, mais le code à mettre en environment.rb ne fonctionne pas, et Bundler ne sera pas installé correctement sur mon serveur. D'autres suggestions?

Répondre

2

Ce n'est pas exactement une réponse, mais comme je ne pouvais jamais config.gem pour fonctionner correctement, je vous recommandons d'utiliser Bundler chaque fois que je peux. Cela fonctionne juste et il gère bien les interdépendances entre les gemmes. Il remplace également config.gem dans Rails 3 d'après ce que je comprends.

0

Essayez Following.put ce code dans envoirment.rb

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

Merci, mais cela ne semble pas fonctionner ... –

0

Je ne sais pas si mes astuces sont utiles, car feedzirra est une extension compilée (contre CURL je pense). Une meilleure solution consiste à installer normalement feedzirra gem (il va se compiler) sur votre serveur.


Vous n'avez pas installé (non compressé) feedzirra gem, mais pauldix-feedzirra. Probablement, vous avez besoin de feedzirra déballé aussi.

Essayez d'ajouter

config.gem feedzirra 

dans environment.rb et exécuter localement

rake gems:install 
rake gems:unpack 

Il ressemble à feedzirra bijou décompressé est manquante dans /vendor/plugins. Regardez si feedzirra y sera copié après ces commandes ...

1

Je remarque deux choses à propos de feedzirra: tout d'abord, ça dépend de 3 autres gemmes, et au moins une de ces gemmes construit des extensions natives. Et je vais l'appeler "feedzirra" - je ne suis pas un fan du fiasco de l'autopackaging inconsidéré de github.

Si ce n'était que le premier, alors rake gems: unpack: les dépendances feraient l'affaire.

Cependant, au moins curb (dont dépend feedzirra) est la construction d'extensions, et ceux-ci ne peuvent pas simplement être déballés. Vous pouvez soit obtenir Dreamhost pour les installer (bonne chance) ou les installer dans le répertoire de gem local de votre utilisateur.

Pour ce faire, vous devez mettre à jour votre .gemrc et assurez-vous qu'il comprend une ligne comme: : user_install: true

râteau Puis pierres précieuses: installer

À moins que votre environnement de déploiement gagné Ne vous laissez pas construire des exécutables, auquel cas vous aurez besoin de débourser pour un paquet moins restreint - Je sais que Dreamhost fournit des paquets qui permettront de faire des extensions.

(Et il y a la question distincte de libcurl en cours de déploiement ...)

Questions connexes