nvmをインストール後SFTP接続できなくなったら

console4
Icons made by Freepik from www.flaticon.com is licensed by CC BY 3.0

Linuxサーバにnvmインストール後、FileZilla等のアプリケーションでSFTP接続ができなくなったら……
それは .bashrc にnvm用に追記した箇所に原因があります。

通常、nvmをインストール後は、node.jsの特定バージョンへパスを通す自動化のために .bashrc にだいたい以下のような記述をすると思います。

source ~/.nvm/nvm.sh
nvm use 0.12.2

しかし、この状態ではSFTP接続ができないことがあります。少なくともFileZillaではコネクション確立できないことが確認済みです。

これを解消するには、通常のSSH接続とSFTP接続で場合分けをする必要があります。
環境変数の PS1 を用いることで実現できます。

SSH接続のとき PS1 にはプロンプト文字列が入っていますが、SFTP接続のときは空です。

参考: bashのプロンプトを変更するには http://www.atmarkit.co.jp/flinux/rensai/linuxtips/002cngprmpt.html

つまり、.bashrc を以下のように書き換えれば、どちらでもちゃんと動作します。

if [ -n "$PS1" ] then;
    source ~/.nvm/nvm.sh
    nvm use 0.12.2
fi

ダブルクオーテーションで囲うのを忘れないでください。

この記事をシェアする:Tweet about this on Twitter
Twitter
Share on Facebook
Facebook
Email this to someone
email