2011-08-26 45 views
2

這類似於:rvmsudo開關爲Capistrano?

Using rvmsudo with Capistrano

我想知道如果在RVM/Capistrano的,使rvmsudo特定交換機。沒有它,我得到這樣的錯誤:

* executing "cd /home/Blog/releases/20110826194116 && bundle install --gemfile /home/Blog/releases/20110826194116/Gemfile --path /home/Blog/shared/bundle --deployment --quiet --without development test" 
    servers: ["199.168.0.1"] 
    [199.168.0.1] executing command 
*** [err :: 199.168.0.1] /usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/installer.rb:551:in `rescue in block in build_extensions': ERROR: Failed to build gem native extension. (Gem::Installer::ExtensionBuildError) 
*** [err :: 199.168.0.1] 
*** [err :: 199.168.0.1] /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
*** [err :: 199.168.0.1] creating Makefile 
*** [err :: 199.168.0.1] 
*** [err :: 199.168.0.1] make 
*** [err :: 199.168.0.1] sh: make: Permission denied 
+0

因爲這有時間限制,所以我繼續添加了一個'after deploy:update_code'過濾器,用於處理rvmsudo中的軟件包更新。我也在RVM郵件列表上詢問了這個問題,但沒有回覆http://groups.google.com/group/rubyversionmanager/browse_thread/thread/cb85821e060dfe3d# –

+0

爲什麼你在部署時在rvm級別安裝gem的任何特殊原因?我會建議做捆綁安裝 - 部署,而不是;它會在代碼樹中展開「已安裝的副本」以供代碼使用。 – Nick

+0

好點,尼克,生病看看 –

回答

0

我認爲,你可以使用這樣的RVM管環境變量作爲您部署的一部分:

set :rvm_ruby_string, '[email protected]_gemset' 
set :rvm_type, :user 

然後RVM命令將範圍限定在這個寶石和用戶。

+0

顯然,這不是一個安裝了rvm的用戶系統的問題。您需要rvmsudo進行系統安裝。 – JellicleCat