Raspberry PiにNode.jsのインストール 」でRaspberry Pi 1 Model BにNode.jsをインストールしました。今回は、Node.js のバージョン管理マネージャ「nvm」を使用して、Raspberry Pi 3にNode.jsをインストールします。また、ログインするとインストールされたNode.jsが起動するように設定します。

次にコマンドでnvmをインストールします。

$ git clone https://github.com/creationix/nvm.git ~/.nvm

次のコマンドでnvmにパスを通します。

$ source ~/.nvm/nvm.sh

次のコマンドでnvmのバージョンを確認します。

$ nvm --version
0.31.1

次のコマンドで、Node.jsインストールバージョンを確認します。

$ nvm ls-remote
     ・
     ・
         v6.0.0
         v6.1.0
         v6.2.0
         v6.2.1

次のコマンドで、Node.jsの最新バージョン「v6.2.1」をインストールします。

$ nvm install v6.2.1
Downloading https://nodejs.org/dist/v6.2.1/node-v6.2.1-linux-armv7l.tar.xz…
######################################################################## 100.0%
Now using node v6.2.1 (npm v3.9.3)
Creating default alias: default -> v6.2.1

次のコマンドで、インストールされたNode.jsのバージョンを確認します。「v6.2.1」になっていれば、正常にインストールされています。

$ node -v
v6.2.1

ログインの都度、nvmとnode.jsの6.2.1を有効にするため、.bash.rcの末尾に以下を追加します。

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

[ -z "$PS1" ] && return # 対話形式でなければ終了
source ~/.nvm/nvm.sh
nvm use 6.2.1

Linuxサーバにnvmインストール後、ssh接続はできるけど、sftp接続しようとするとエラーとなって接続出来なくなった場合、それは .bashrc にnvm用に追記した箇所に原因があります。これを解消するには、上記に示すコードのように、通常のSSH接続とSFTP接続で、環境変数の PS1 を用いて場合分けをする必要があります。SSH接続のとき PS1 にはプロンプト文字列が入っていますが、SFTP接続のときは空です。

再起動すると次のように表示され、node.jsの6.2.1が起動されていることが確認できました。

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sat Jun 11 05:33:59 2016 from xx.xx.xx.xx
Now using node v6.2.1 (npm v3.9.3)