2009-01-30 4 views
2

Ayant les mêmes problèmes que this post, sauf que je ne pense pas que la solution est la même malheureusement.Rails nécessite RubyGems> = 0.9.4. S'il vous plaît installer RubyGems

Je reçois ce message d'erreur:

Rails requires RubyGems >= 0.9.4. Please install RubyGems 

quand je lance un script de travail/coureur dans Cron, mais il fonctionne parfaitement bien quand je le lance dans un terminal sur le même serveur.

Le serveur rails fonctionne également correctement. J'ai seulement du mal à lancer script/runner dans cron. Il semble vouloir avoir un terminal attaché ...

Répondre

4

Essayez which ruby et which gem de votre travail de cron et aussi du terminal. Êtes-vous en train d'accéder à différents binaires? Vous n'avez pas mentionné quel système d'exploitation et quel shell, mais vous pouvez avoir un autre $PATH lors de l'exécution sans tête.

+0

Merci c'était ça. 'quel gem' n'a rien retourné lors de l'exécution de cron, donc j'ai mis la variable d'environnement PATH à la même que celle qui a été définie dans la session my terminal et maintenant cela fonctionne bien. Merci! – Joel

0

Vous ne travaillez pas sur OSX? Vous devriez plutôt installer un nouveau rail et des gemmes de ruby ​​au lieu de macports. Google pour les instructions ...

0

Comme indiqué par les messages précédents, votre Cron utilise une source de commande de gem différente - essayez également which gem et gem -v. Vous pouvez avoir une bibliothèque dans votre .bash_profile (ou une configuration de shell similaire ou peut-être par d'autres moyens, en définissant un environnement Ruby/Rails approprié (par exemple, Locomotive ou tout autre environnement tout-en-un).

gem update --system

Plus d'informations ici - http://www.rubygems.org/read/book/1

1

la réponse choisie est tout à fait correct, mais quelque chose que je vous suggère est de ne pas utiliser script/runner les ressources nécessaires pour charger l'ensemble de la pile de vos rails. l'application est assez intense pour somet Hing pour courir régulièrement. Dans mon expérience passée, tous les travaux cron doivent généralement traiter uniquement des données (par opposition à, par exemple, générer des fichiers statiques, etc.). Dans ce cas, vous pouvez tout simplement charger vos modèles, et puisque vous avez écrit vos modèles correct (gros modèles), vous pouvez facilement faire votre traitement de données avec quelques méthodes de modélisation.

Bien sûr, tout le dépend avant tout de votre tâche, prenez donc avec un grain de sel :)

Je suppose que cela a été une sorte de réponse à un problème qui ne peut exister, et n'a pas été demandé ici, mais juste pensé que je jetterais mes deux cents dans;)

Questions connexes