2011-10-12 18 views
15

Kabuğu, Capistrano çalışma komutunda sh yerine bash kullanmak için nasıl ayarlayabilirim? Ben RVM yüklemeye çalışıyorum ve komut çalıştırmak gerekir: gibiKabuğu Capistrano'da çalıştırmak için nasıl bash ayarlayabilirim?

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 [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 

Ama sadece Capistrano yürütme çünkü işe almak gibi olamaz:

Ben Capistrano mücevher görmek
"sh -c 'bash < <(curl -L http://bit.ly/rvm-install-system-wide)'" on [email protected] 

command.rb dosyası

gibi bazı kodu vardır

ama görev

+0

Bu "bash", sh -c 'bash ...' 'ile çalıştırılıyor gibi görünüyor. Bu ihtiyaçlarınızı nasıl karşılamıyor? (Feragatname: Capistrano hakkında hiçbir şey bilmiyorum.) –

cevap

1

:shell değişkeni ayarlamayı deneyin için options[:shell] geçmesine nasıl bana belirsizdir.

set :shell, '/usr/bin/bash' 
+0

Bu, Capistrano'da çalışmıyor gibi görünüyor, kabuk sadece "default_run_options" ile değiştirilebilir. –

33

seti: Kabuk çalışmıyor, ama bu çalışır: rvm-capistrano mücevher ihtiyaç gibi

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

+7

Not: rvm için '/ bin/bash --login' – nateware

+0

+1 'e ihtiyacınız olabilir, seni öpebilirim ... –

8

geliyor. Başka bir seçenek rvm-Capistrano'nun kullandığı mekanizma kullanmak olacaktır, yani:

set :default_shell, '/bin/bash -l' 
+0

harika, CentOs dağıtım sistemi için çok fazla yardımcı oldu – Schubie

+1

Bu benim için iyi çalıştı Ubuntu 14.04 LTS üzerinde. Çok teşekkürler! –

0

Ayrıca aşağıdaki sözdizimini kullanabilirsiniz: Bu --login ile çevreyi ayarlanması için özellikle yararlıdır

run "bash -c <command>" 

Örneğin, aşağıdaki gibi değiştirin:

run "bash --login -c rvm use 1.9.2 

... ve aynı zamanda Capistrano 3.x'te çalışır ...!

İlgili konular