net-ssh ライブラリを使用して、サーバーでリモート コマンドを実行したいと考えています。
次の例があります。
Net::SSH::start(host, user, options = {:keys => '~/.ssh/id_rsa'}) do |ssh|
puts ssh.exec!("echo $PATH")
ssh.loop
end
結果は次のようになります: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
私の問題は、本来あるべき PATH がロードされていないことです。
また、いくつかの RVM パスと、.zshrc に定義するカスタム パスも必要です。
この動作を変更して、net-ssh が .zshrc を使用してデフォルト環境をロードできるようにするにはどうすればよいですか?
解決:
puts ssh.exec!("source ~/.zshrc; echo $PATH")