2016-12-16 20 views
1

を作成し得ていない私はgemsetを作成するために、私のレシピにrvm --create --ruby-version [email protected]が含まれています。 キッチンコンバージを実行しても、.ruby-gemset.ruby-が作成されません。しかし、rvm --create --ruby-version [email protected]をVM端末で直接実行すると、ファイルが作成されています。理由は何でしょうか?ありがとう。ここ は私のbashのコードは次のようになります。サーバー上でRVMの一般的な使用では問題 - .ruby-gemsetと.rubyバージョン

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

あなたがルビーと宝石のパスがシェフルビー自身によって修正されている環境から走っているからですか?あなたがコマンドラインにいるときは、あなたはそうではありません。あなたのbashコマンドに適切な環境変数を設定するか、これについて他のcookbookを参照する必要があります(rbenvかもしれません) – Tensibai

+0

環境変数を設定するにはどうしたらいいですか?また、env変数の値は何ですか? – Anjana

+1

env値を設定するには、[documentation](https://docs.chef.io/resource_bash.html#properties)にあります。値は 'rvm use'の後に' rvm env'で指定する必要があります。あなたが余裕を持って得たアドバイスに従ってください。主にpoise_rubyまたはrbenvに移動します。 – Tensibai

答えて

1

は落胆しなければならない、とシェフ+ RVMは時代の最高の状態でdiceyです。より具体的には、appbundler(Chefがわずかに箇条書きのバイナリスタブを作成するために使用する)は、rvmを混乱させる可能性のある多くの環境変数を設定します。

プロジェクトにRubyの特定のバージョンが必要な場合は、rvmとgemsetではなくpoise-ruby + poise-ruby-buildとBundlerを使用することを強くお勧めします。

+0

しかし、同じサーバーと複数のgemsetバージョンで複数のバージョンのRubyが必要な場合はどうなりますか? – Anjana

+0

それはそれを処理することができます。 – coderanger