2012-07-30 24 views
6

私がVPSにデプロイメントユーザとしてsshを接続し、bundle -vを実行すると、期待通りにBundler version 1.1.5が得られます。バンドルがssh経由で見つかりません

私はssh [email protected] bundle -v実行すると、私はbash: bundle: command not found

なぜバンドルされていませんが、ssh経由でコマンドを実行している示されている参照してください?

詳細

$ cat ~/.bashrc 

# ~/.bashrc: executed by bash(1) for non-login shells. 
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) 
# for examples 

if [ -d "${RBENV_ROOT}" ]; then 
    export PATH="${RBENV_ROOT}/bin:${PATH}" 
    eval "$(rbenv init -)" 
fi 

# If not running interactively, don't do anything 
[ -z "$PS1" ] && return 

答えて

4

あなたが実行します。

ssh [email protected] 

あなたのシェルがbashのために...(実行されることを意味し、リモートホスト、上のログインシェルを取得します。 ..).bash_profileまたは.profileまたはこれと同等のASをシェル単位の初期化ファイルとして使用します。

あなたが実行します。

ssh [email protected] some_command 

これは、ログインシェルを起動しないので、それだけごとのシェル初期化ファイル(たとえば、.bashrc)を実行します。

この問題は通常、すべての機能が動作するためには、.profileファイル(通常は環境変数設定)に何かが必要なことを意味します。

0

.profileはログインシェル用にのみ読み込まれます。

ssh [email protected] 

はあなたのログインシェルを与えるだろうが、

ssh [email protected] bundle -v 

はしません。

あなたは.bashrcの中でrbenvの愛らしさを置くことができるが、これはある場合は、1つのショットは、ちょうどそうのようなあなたのsshコマンドにそれをタッククリーナーかもしれません対処:

ssh [email protected] "export PATH=\$HOME/.rbenv/bin:\$PATH; eval \"\$(rbenv init -)\"; bundle -v" 
関連する問題