2016-12-16 1 views
1

J'ai inclus rvm --create --ruby-version [email protected] dans ma recette pour créer un gemset. L'exécution de la cuisine converge n'aboutit pas à la création de .ruby-gemset et .ruby-version. Mais lorsque je cours rvm --create --ruby-version [email protected] directement sur le terminal VM, les fichiers sont créés. Quelle pourrait être la raison? Merci. Voici ce que mon code bash ressemble:Problème lors de la création d'un gemset via Chef - .ruby-gemset et .ruby-version n'étant pas créé

bash "somename" do 
    user 'root' 
    cwd "/var/www/html/APIStoresView/" 
    code <<-EOH 
    rvm --create --ruby-version [email protected] 
    EOH 
end 
+0

Tout simplement parce que vous courez depuis un environnement où ruby ​​et gem path sont fixés par le chef ruby ​​lui-même? Quand vous êtes en ligne de commande, vous n'êtes pas. Soit vous devrez définir la variable d'environnement appropriée dans votre commande bash, soit jeter un oeil à d'autres livres de cuisine pour cela (rbenv peut-être) – Tensibai

+0

Désolé pour le son naïf, mais comment pouvons-nous définir les variables d'env? Aussi, quelles sont les valeurs pour les variables d'environnement? – Anjana

+1

Pour la définition des valeurs d'env, c'est dans la [documentation] (https://docs.chef.io/resource_bash.html#properties), les valeurs doivent être données par 'rvm env' après un' rvm use'. mais considérez suivre les conseils que vous avez obtenus. Se déplaçant principalement vers poise_ruby ou rbenv. – Tensibai

Répondre

1

En usage général de RVM sur les serveurs devrait être découragée, et le chef + RVM est casse-gueule au meilleur des temps. Plus spécifiquement, appbundler (utilisé par Chef pour créer des stubs binaires à l'épreuve des balles) définit un grand nombre de variables d'environnement qui peuvent confondre rvm.

Si vous avez besoin d'une version spécifique de Ruby pour un projet, je recommande fortement d'utiliser poise-ruby + poise-ruby-build et Bundler plutôt que RVM et gemsets.

+0

Mais que se passe-t-il si j'ai besoin de plusieurs versions de Ruby sur le même serveur et plusieurs versions de gemset? – Anjana

+0

Il peut gérer cela. – coderanger