0

Vagrant VMでChef-soloを使用してRVMをセットアップbundlerできましたが、railsプロジェクトで見つからない理由がわかりません。

したがって、プロビジョニング後、次のようになります。

最終ログイン:10.0.2.2から2012年10月4日木曜日15:23:58
vagrant @ vm:〜$ ruby​​ -v
ruby 1.9.3p327(2012-11-10リビジョン37606)[x86_64-linux]
vagrant @ vm:〜$gemリスト

***ローカルジェム***

bigdecimal(1.1.0)
バンドラー(1.3.2)
daemon_controller(1.1.1)
fastthread(1.0.7)
io-console(0.3)
json(1.5.4)
ミニテスト(2.5.1)
乗客(3.0.18)
ラック(1.5.2)
レーキ(10.0.3、0.9.2.2)
rdoc(3.9.4)
rubygems-bundler(1.1.1)
rvm(1.11.3.6)

私が見るプロジェクトディレクトリに行く:

vagrant @ vm:〜$ cd / www / vm / rails / current /
================================================== ============================
=通知=
================================================== ============================
= RVMは、現在のディレクトリで新しいまたは変更された.rvmrcファイルを検出しました=
=これはシェルスクリプトであるため、任意のシェルコマンドを含めることができます。=
= =
=このファイルの内容を注意深く調べて、内容が=であることを確認してください。
=それを信頼する前に安全です!(内容を表示するには、以下のv [iew]を選択してください)=
================================================== ============================
この.rvmrcファイルを信頼しますか?(/www/vm/rails/current/.rvmrc)
y [es]、n [o]、v [iew]、c [ancel]> y
mkdir:ディレクトリ `/usr/local/rvm/gems/ruby-1.9.3-p327@vm'を作成できません:アクセスが拒否されました
gemset vmは存在せず、作成しています。
mkdir:ディレクトリ `/usr/local/rvm/gems/ruby-1.9.3-p327@vm'を作成できません:アクセスが拒否されました
mkdir:ディレクトリ `/usr/local/rvm/gems/ruby-1.9.3-p327@vm'を作成できません:アクセスが拒否されました

しかし、バンドルが見つからなくなり、RVMをアクティブ化するのにも問題があります...これをデバッグする方法はありますか?

$ rvm use ruby​​-1.9.3-p327
`rvm gem ...`が削除されたことに注意してください。代わりに、`gem`または`rvm alldogem`を試してください。(「rvmの使用法」を参照)

PS私のノードjsonは基本的にこれです:https ://github.com/mulderp/chef-rails-stack

4

1 に答える 1

1

デバッグにはhttps://github.com/mpapis/rvm-binary/blob/master/cookbooks/binary/recipes/default.rb#L11を使用します。

class Chef::Resource::Script
  def log_code command
    if Chef::Config[:log_level] == :debug
      code "{ #{command}; _ret=$?; echo \"Exit status was $_ret.\"; exit $_ret; } 2>&1 |
tee /var/log/#{@command.to_s.gsub(/ /,"_")}.log; exit ${PIPESTATUS[0]}"
    else
      code command
    end
  end
end

そして、code使用する代わりにlog_code、ログを保存します/var/log/#{@command.to_s.gsub(/ /,"_")}.log

RVMとChefチェックの簡単な統合についてはhttps://gist.github.com/sevos/5076747

deploy_user = node[:deploy][:user]
deploy_user_home = File.join('/', 'home', deploy_user)
rvm_version = "head"

execute "install_rvm_for_deploy_user" do
  user deploy_user
  command "curl -L https://get.rvm.io | bash -s #{rvm_version}"
  environment "HOME" => deploy_user_home
  creates "#{deploy_user_home}/.rvm"
end

node['buildpack']['ruby_versions'].each do |ruby_version|
  execute "install_rvm_ruby_#{ruby_version}" do
    user deploy_user
    environment "HOME" => deploy_user_home
    command "#{deploy_user_home}/.rvm/bin/rvm install #{ruby_version} --autolibs=3"
  end
end

file "#{deploy_user_home}/.rvmrc" do
  content 'export rvm_trust_rvmrcs_flag=1'
  owner deploy_user
  mode 0644
end
于 2013-03-08T17:36:53.817 に答える