Wie richte ich die shell bash zum laufen in Capistrano?
Wie kann ich mir die shell in der Capistrano ausführen-Befehl bash statt sh?
Ich bin versucht zu installieren RVM und ich brauche, um den Befehl auszuführen:
run "bash < <(curl -L http://bit.ly/rvm-install-system-wide)"
in:
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
Aber ich kann einfach nicht scheinen, um es zu arbeiten, weil Capistrano ausführen:
"sh -c 'bash < <(curl -L http://bit.ly/rvm-install-system-wide)'" on ubuntu@ec2...
Sehe ich in der Capistrano gem den Befehl.rb-Datei hat einige code wie
shell = "#{options[:shell] || "sh"} -c"
aber es ist mir unklar, wie pass options[:shell]
zur Aufgabe
- Wie es aussieht ist es die Ausführung
bash
übersh -c
bash ...`. Wie funktioniert, dass Ihren Anforderungen nicht genügen? (Disclaimer: ich weiß nichts über Capistrano.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
set :Schale nicht arbeiten, aber das funktioniert:
default_run_options[:shell] = '/bin/bash'
/bin/bash --login
Es klingt wie Sie benötigen, die rvm-capistrano gem. Eine andere Möglichkeit wäre die Verwendung der Mechanismus, der durch rvm-capistrano ist:
Versuchen Sie, die
:shell
variable.default_run_options
.Können Sie auch die folgende syntax verwenden:
Es ist besonders nützlich für die Einstellung der Umwelt mit --login-Schalter, zum Beispiel:
...und es funktioniert auch in Capistrano 3.x...!