如何在Capistrano run命令中将shell设置为使用bash而不是sh?我正在尝试安装RVM,并且需要执行以下命令:
run "bash < <(curl -L http://bit.ly/rvm-install-system-wide)"
如下所示:
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 1.9.2@global"
run "gem install awesome_print map_by_method wirble bundler builder pg cheat"
run "gem install -v2.1.2 builder"
# modify .bashrc
end
但是我似乎不能让它工作,因为Capistrano正在执行:
"sh -c 'bash < <(curl -L http://bit.ly/rvm-install-system-wide)'" on ubuntu@ec2...
我看到在Capistrano gem中,command.rb文件有一些代码,比如
shell = "#{options[:shell] || "sh"} -c"
但我不清楚如何将options[:shell]
传递给任务
发布于 2011-11-25 07:14:56
set :shell不工作,但工作正常:
default_run_options[:shell] = '/bin/bash'
发布于 2013-03-06 04:34:40
听起来你需要rvm-capistrano的宝石。另一种选择是使用rvm-capistrano使用的机制,即:
set :default_shell, '/bin/bash -l'
发布于 2011-10-21 07:44:32
尝试设置:shell
变量。
set :shell, '/usr/bin/bash'
https://stackoverflow.com/questions/7747759
复制相似问题