bash - 如何将 shell 设置为 bash 以便在 Capistrano 中运行?

标签 bash rvm capistrano

如何在 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] 传递给任务

最佳答案

set :shell 不工作,但是可以工作:

default_run_options[:shell] = '/bin/bash'

关于bash - 如何将 shell 设置为 bash 以便在 Capistrano 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747759/

相关文章:

git - 如何在本地执行 Capistrano 任务?

linux - 在 Linux 中查找进程的内存使用情况

regex - 如何检查字符串是否包含 shell 中正则表达式模式中的字符?

ruby - 使用 ruby​​ 1.9.3 在 Ubuntu 11.10 上安装 ruby​​-rvm

ruby-on-rails - Unicorn 无法使用 capistrano 找到打包器

ruby-on-rails - 为什么 capistrano 3 链接文件在试运行时失败?

bash - 将文件中的文本附加到另一个文件中的文本

bash - Shell脚本对编码和行尾是否敏感?

ruby-on-rails - 通过 Rails 3 模板设置 RVM gemset

ruby - 我怎样才能让 RVM 尊重我的 bundler 关于在哪里放置 gem 的设置?