Làm cách nào để đặt trình bao trong lệnh chạy Capistrano để sử dụng bash thay vì sh? Tôi cố gắng để cài đặt RVM và tôi cần phải thực hiện lệnh:Làm cách nào để đặt shell thành bash để chạy trong Capistrano?
run "bash < <(curl -L http://bit.ly/rvm-install-system-wide)"
như trong:
task :install_rvm, :roles => :server do
apps = %w(bison openssl libreadline6 libreadline6-dev zlib1g zlib1g-dev libssl-dev libyaml-dev sqlite3 libsqlite3-0 libxml2-dev libxslt-dev autoconf subversion libcurl4-openssl-dev)
apt.install({:base => apps}, :stable)
run "bash < <(curl -L http://bit.ly/rvm-install-system-wide)"
run "rvm install 1.9.2".sh
run "rvm use [email protected]"
run "gem install awesome_print map_by_method wirble bundler builder pg cheat"
run "gem install -v2.1.2 builder"
# modify .bashrc
end
Nhưng tôi chỉ dường như không thể có được nó để làm việc vì Capistrano đang thực hiện:
"sh -c 'bash < <(curl -L http://bit.ly/rvm-install-system-wide)'" on [email protected]
tôi thấy trong viên ngọc Capistrano file command.rb có một số mã như
shell = "#{options[:shell] || "sh"} -c"
nhưng không rõ với tôi cách vượt qua options[:shell]
đến công việc
Dường như nó đang thực thi 'bash' qua' sh -c 'bash ...' '. Làm thế nào mà không đáp ứng yêu cầu của bạn? (Disclaimer: Tôi không biết gì về Capistrano.) –