Capistrano ド初心者の僕が、表題の問題にぶつかったので、解決策と、ついでにそこに至るまでに調べたことをメモ書きしておきます。
ちょっと散文気味ですが Capistrano の情報ぐぐっても少なかったので、こんなのでも誰かの足しにはなるかなと。
TL;DR: .bash_profile は読まれないから .bashrc に書く
「.bash_profile は読まれないから .bashrc に書く」 それだけです。超・シンプルです。
元ネタ:Stackoverflowでの質問
色々と調べたんですけど、結局このStackoverflowに書いてました。何か回答者が最初書き間違えたみたいで「 .bashrc
じゃなく. bash_profile
に書くといいよ」って書いてあったりで紛らわしいですが、コメント欄を見ると「For me it reads .bashrc and does not read .bash_profile. I'm using CentOS.」とか言ってますね。
ところで
since it's not interactive shell
ということらしくて、インタラクティブシェルじゃないから読まれないってのは分かったんですけど、じゃあ何シェルなんですかね? 詳しい人いたら教えて頂けると嬉しいです。
ほか余談
Capistranoのお勉強・デバッグってどうしたらええんや…というので手探りして、この辺から理解していくと良さそうだと思いました。ということで余談ですが書いておきます。
Capistrano のドキュメントつまみ読み
もちろんCapistrano自体のREADMEは最初に読んだ方がいいんですけど、README自体は内容が薄めで、いまいちその次に何を読んだら良いのかのとっかかりがないように思えた。
SSHでのコマンド実行系のメソッド(execute
,capture
,test
)はCapistranoから切り離されたSSHKitっていうライブラリの管轄らしい。なので以下の2つのドキュメントを読むととりあえずCapistranoでのコマンド実行がどういう仕組みなのか分かってくると思う。
- Capistrano Tasksについてのドキュメント http://capistranorb.com/documentation/getting-started/tasks/
- SSHKit のREADME https://github.com/capistrano/sshkit
Capistrano console がデバッグに便利
Capfileなりdeploy.rbなりに require 'capistrano/console'
って書いて cap foobar console
などと実行すると、capistranoと限りなく近い環境のコンソールを立ち上げる事が出来ます。
単にsshログインした場合と何が異なっているのか確認しやすくて良いです。