建立一個EC2服務器RVM我在尋找安裝RVM,安裝特定的紅寶石版本(使用RVM),並設置該安裝紅寶石版默認的方式。在我可以安裝rvm之前,我必須安裝gcc和一些其他非常基本的軟件包。我試過到目前爲止:通過腳本
1)使用net/SSH
- 我要模擬一個僞TTY能夠sudo的一些命令和到現在爲止,我 無法弄清楚,如何從一個不成功的完整命令成功完成命令完成。
- 安裝RVM後,我用RVM已經絆了問題(「RVM是不是一個函數」,錯誤信息,導致不能夠設置一個默認的紅寶石版)。
2)使用Capistrano的
在ssh輸出被換行插入,使得例如一個進度條被在新的一行,每次印刷,一些取得進展。這是我可以忍受的。
與rmv相同的問題,我可以安裝rvm,但我無法設置默認值:例如
rvm --default use 1.9.2
。沒有錯誤消息,但是當我後登錄,沒有默認設置和ruby -v
顯示舊系統的紅寶石。
3)使用Capistrano的和RVM-Capistrano酒店
- 現在我遇到了問題,那很任務,我嘗試安裝RVM失敗之前執行,因爲似乎有一些魔法
* executing "sudo -p 'sudo password: ' yum install --assumeyes git gcc-c++ autoconf automake make patch zlib-devel libtool bzip2-devel" servers: ["ec2-54-247-142-214.eu-west-1.compute.amazonaws.com"] [ec2-54-247-142-214.eu-west-1.compute.amazonaws.com] executing command ** [out :: ec2-54-247-142-214.eu-west-1.compute.amazonaws.com] bash: /home/ec2-user/.rvm/bin/rvm-shell: No such file or directory command finished in 2094ms failed: "rvm_path=$HOME/.rvm/ $HOME/.rvm/bin/rvm-shell 'default' -c 'sudo -p '\\''sudo password: '\\'' yum install --assumeyes git gcc-c++ autoconf automake make patch zlib-devel libtool bzip2-devel'" on ec2-54-247-142-214.eu-west-1.compute.amazonaws.com rake aborted!
這裏COM:與外殼默認撥弄mands我問題,安裝RVM /紅寶石:
run 'curl -L https://get.rvm.io | bash -s stable'
run 'rvm install ruby-1.9.2-p320'
run 'echo "[[ -s \"\$HOME/.rvm/scripts/rvm\" ]] && source \"\$HOME/.rvm/scripts/rvm\"" >> .bashrc'
run 'rvm --default use ruby-1.9.2-p320'
run 'which ruby && ruby -v'
這裏使用Capistrano的和RVM-Capistrano酒店和黑客有點
所發出的響應rvm --default use 1.9.2
RVM is not a function, selecting rubies with 'rvm use ...' will not work.
You need to change your terminal settings to allow shell login.
Please visit https://rvm.io/workflow/screen/ for example.
4.1)的錯誤信息
更新:在RVM聊天的mpapis幫助下,我現在能夠提出這個工作解決方案: 需要「rvm/capistrano」
role :server, ENV[ 'base_image_setup_server' ] if ENV[ 'base_image_setup_server' ]
default_run_options[:pty] = true
default_run_options[:shell] = :bash
set :rvm_ruby_string, 'ruby-1.9.2-p320'
set :rvm_type, :user
def rvm_bin
'$HOME/.rvm/bin/rvm'
end
namespace :images do
task :install_basics do
run "#{sudo} yum install --assumeyes git gcc-c++ autoconf automake make patch zlib-devel libtool bzip2-devel"
run "#{sudo} yum update --assumeyes"
end
task :install_ruby do
rvm.install_rvm
rvm.install_ruby
run "#{rvm_bin} alias create default #{rvm_ruby_string}"
run 'echo "source ~/.rvm/environments/default" >> $HOME/.bashrc'
run 'which ruby && ruby -v'
end
...
desc 'build the base-image'
task :base_image do
install_basics
install_ruby
install_boost
install_rake_and_rack
install_sioux
test_sioux
end
主要的不同是,那個RVM是不是用作函數,而是程序直接。
親切的問候, 託斯滕
@mapsis但沒有名爲'部署'的任務,但我有一個任務要做_before_安裝rvm/ruby(例如安裝編譯器)。謝謝。 – 2012-08-14 05:49:53
更新,還注意與RVM2這個預先步驟將不會被需要,因爲所有必需的組件將與紅寶石一起安裝...你也應該能夠設置外部依賴關係 – mpapis 2012-08-14 07:21:08
我不認爲你的例子會工作,因爲需要「 rvm/capistrano「會將終端改爲」/home/ec2-user/.rvm/bin/rvm-shell「。我已經通過明確地將shell重新更改爲bash來解決此問題。到目前爲止,我會更新這個問題。但是,謝謝你的努力。 – 2012-08-14 07:54:20