J'ai installé et configuré RVM à peu près le modèle décrit dans la première partie de cet ensemble d'instructions: http://blog.ninjahideout.com/posts/a-guide-to-a-nginx-passenger-and-rvm-server
Fondamentalement, cela signifie qu'il n'y a pas de système de pré-construction Ruby (toutes les installations Ruby sont gérées par RVM) et RVM est installé à l'échelle du système au lieu d'un utilisateur particulier (fichiers au Un problème avec la configuration du système de cette façon est que l'environnement RVM doit être mis en place dans une session Shell avant que Ruby ne puisse être utilisé. Pour tous les utilisateurs de RVM, je l'ai mis dans leur .bstrucc i>: Le problème vient en jeu pour les travaux de cron, qui n'exécutent pas .bstrucc i>. Le script RVM ci-dessus (/ USR / local / RVM / RVM / RVM) est considérablement plus compliqué que la configuration de quelques variables d'environnement, de sorte que j'aimerais réellement exécuter cette commande avant chaque travail dans le fichier. P> Bien sûr, je pourrais le faire manuellement, comme: p> mais je préférerais faire quelque chose comme ceci: p> Évidemment, la syntaxe ci-dessus ne fonctionne pas. Mais y a-t-il un moyen de faire fonctionner cela? Les pages cron man et la documentation n'étaient pas beaucoup d'aide ici. Mais y a-t-il un truc ou un moyen standard d'y parvenir? P> Si cela importe, je cours Ubuntu 10.10 (Maverick Meerkat). P> P> / usr / local / rvm code >) de sorte que tous les utilisateurs du groupe
rvm code> peuvent accéder aux mêmes rubis avec les mêmes gemmes installées. p>
source "/ usr / local / rvm / rvm" code>. Cela fonctionne bien pour les sessions SSH. P>
4 Réponses :
Fichiers Crontab ne permet généralement que deux types de choses (plus des commentaires et des lignes vierges si Vous voulez être pédants):
et Certains crontabs ne supportent pas même Réglage des variables d'environnement (bien que je doute que vous rencontrez une telle pratique de pratique). p>
Si vous devez faire plus que définir des variables d'environnement, vous devrez mettre votre et ensuite dans le crontab: p> six d'une, une demi-douzaine de l'autre. P> P> Source "/ usr / local / rvm / scripts / rvm" code> soit dans les spécifications cron que vous avez dans votre question ou que vous aurez besoin d'envelopper vos travaux de cron dans un coureur de cron quelque chose comme ceci: p> < Pré> xxx pré>
Merci! Je soupçonné (inquiet) que ce serait la réponse, mais je suis heureux d'avoir une certaine confirmation que je ne manque pas de quelque chose dans les documents.
Ma version de SH (Bourne Shell) ne sait pas ce que "Source" est. Je devais changer le shebang en #! / Bin / bash code>.
@Labyrinthe afaik . "/ usr / local / rvm / scripts / rvm" code> devrait fonctionner dans un strict
/ bin / sh code>.
Vous n'avez pas besoin d'écrire des emballages (à la suite de cette logique, vous pourriez aussi bien écrire une enveloppe à l'enveloppe). S'il vous plaît garder les choses simples. Tout ce que vous avez à faire est de configurer votre travail cron pour lancer une coque BASH et faire charger votre coquille Bash votre environnement.
La ligne Shebang de votre script ne doit pas se référer directement à un exécutable Ruby, mais à RVM's Ruby: P>
15 14 1 * * export BASH_ENV=/path/to/environment && /full/path/to/bash -c '/full/path/to/rvm_script.rb'
Daniel - Vous voudrez peut-être modifier cette excellente réponse pour en faire plus d'une référence en notant où exactement les trucs de RVM sont introduits via le paramètre Bash_env. Dans mon cas, c'était de /etc/profile.d/rvm.sh (Centos 5). Chris
Si votre cronjob est un fichier rubis droit, le docs dise que vous pouvez simplement utiliser le Dans Wrapper qui chargera la version Ruby correcte et Gemset: vous auriez toujours besoin d'ajouter cet appel à chaque ligne. p> p>
juste faire Ceci permettant la configuration RVM Ruby Cron Paramètres P>
alors Ajoutez vos tâches cron, sauvegarder et fermer et vous êtes prêt à partir !! p> rvm cron setup code> p>
crontab -e code> p>
Seule cette avance m'aide