2017-12-12 17 views
0

https://nodesource.com/blog/installing-node-js-tutorial-using-nvm-on-mac-os-x-and-ubuntu/に従ってnpmをインストールした後、~/.bashrcの最後に3行追加してnvmツールをロードします。nshをssh経由で実行する方法

sshを使用してそのサーバに接続する場合、npm --versionは期待通りに5.5.1を出力します。

しかし、リモートで実行している場合:

ssh server /bin/bash -l -c "npm --version" 

を私が取得:

--version:NPM:コマンド

を発見していないときに使用可能NPMを持つための正しい方法は何ですかリモートで1行で実行していますか?

答えて

2

あなたの疑問にお答えしますように、.bashrcはソースになっていません。 -lフラグを追加することで適切なアイデアが得られましたが、この場合は実際に-iフラグを使用して対話型シェルを作成し、コマンド実行前に.bashrcを援助しています。

ssh -t "server" 'bash -i -c "npm --version"' 

ssh

commandが指定されている場合は、代わりに、ログインシェルのリモートホスト上で実行されます。

-t強制擬似端末割り当て。

bash

ログインシェルが起動されないが、対話型シェルは、bashは読み込み、これらのファイルが存在する場合、/etc/bash.bashrc~/.bashrcからコマンドを実行します。

+0

私はこれをしようとすると、私が手: bashは:デバイス bashのために不適切なioctlの:ターミナルプロセスグループ(-1)を設定することはできません。このシェル –

+1

@TimBolandでいないジョブ制御を - 私は私の答えを更新して、コメントを追加しています'-t'フラグを' ssh'に設定します。このフラグは擬似端末の割り当てを強制し、問題を解決するはずです。 –

関連する問題