首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将shell设置为在Capistrano中运行bash?

如何将shell设置为在Capistrano中运行bash?
EN

Stack Overflow用户
提问于 2011-10-13 07:27:10
回答 4查看 10.1K关注 0票数 15

如何在Capistrano run命令中将shell设置为使用bash而不是sh?我正在尝试安装RVM,并且需要执行以下命令:

代码语言:javascript
复制
run "bash < <(curl -L http://bit.ly/rvm-install-system-wide)"

如下所示:

代码语言:javascript
复制
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正在执行:

代码语言:javascript
复制
"sh -c 'bash < <(curl -L http://bit.ly/rvm-install-system-wide)'" on ubuntu@ec2...

我看到在Capistrano gem中,command.rb文件有一些代码,比如

代码语言:javascript
复制
shell = "#{options[:shell] || "sh"} -c"

但我不清楚如何将options[:shell]传递给任务

EN

回答 4

Stack Overflow用户

发布于 2011-11-25 07:14:56

set :shell不工作,但工作正常:

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

票数 34
EN

Stack Overflow用户

发布于 2013-03-06 04:34:40

听起来你需要rvm-capistrano的宝石。另一种选择是使用rvm-capistrano使用的机制,即:

代码语言:javascript
复制
set :default_shell, '/bin/bash -l'
票数 8
EN

Stack Overflow用户

发布于 2011-10-21 07:44:32

尝试设置:shell变量。

代码语言:javascript
复制
set :shell, '/usr/bin/bash'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7747759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档