せいごさんに色々教えていただきながら、raspberry pi で IoT に参入し、居酒屋ハッカソンで笑いを取りたいなと作業しています。昨日はラズパイにnodeのバージョン管理ツールであるnodebrewが普通に入ることを教えてもらったのでやってみました。
まずなぜnodebrewを入れる必要があるかというと、根本的にはNode-REDを使うためです。Node-REDはnode.jsのnpmなので、動かすためにはnode.jsか必要になります。
では、なぜnode.jsを普通にインストールするのではなくて、nodebrewというnodeのバージョン管理ツールを入れる必要があるかというと、node.jsはバージョンによって差異が大きく、また更新も早いので、いくつかのバージョンを使い分けなくてはいけないシーンが出てくるからです。これは、フロントエンドの開発においてnpmを使ってタスク処理をさせている方には馴染みのある知識だと思います。具体的には、nodeのバージョン以上に、npmのバージョンが大きく、npm2でインストールしたnpmは、npm3でインストールすることを前提に動いているnodeでは全く機能しません。他にも細々とバージョンによってトラブルが起きるので、バージョンを管理し、開発者間で基本的には同じバージョンのnodeを使う必要があります。そのためにnodebrewが必要になります。
また、ラズパイのraspbianという標準的なOSには最初から、node.jsがインストールされていますが、このnode.jsのバージョンはかなり昔のものなので、基本的にはサポートしておらず、バージョンアップするようにかかれています。http://nodered.org/docs/hardware/raspberrypi ですのでnodebrewを使わない人も、この指示に従ってnode.jsとNode-REDのバージョンをあげましょう。
問題は、上の指示は基本的に最初からラズパイに入っているnodeとNode-REDのバージョンを、まとめてあげるものであって、今回のようにnodeを自分で入れて、npmとしてnode-redをインストールするときにどうすればいいのかが書かれていないように思われます。
とはいえ、nodeのバージョンを管理しないのは不便だと思うのでnodebrewを入れる方向を選びました。さしあたってnode-REDは動きますし、nodeの管理もmacでやっている時と同じようにできるようになりました。問題は、上のドキュメントで言及されているラズパイのGPIO関係のNode-RED用ノードが入っているのか、動くのか、ということだけです。これはまだ検証していません。ラズパイのGPIO出力端子が、メスだということを予想しておらず、家にケーブルがなかったからです。アードゥイーノユーザーの方は注意してください。
さてインストールしていきます。nodebrewの公式ドキュメントに書いてある通りに、まずはインストール。
$ curl -L git.io/nodebrew | perl – setup
次にパスを通すわけですが、.bashrcに書くと書いてありますが、何かと.bash_profileに書いた方が良いらしく、なぜなのかは私にはわかりませんが、そうします。
そして、vimというエディターで編集するのは、操作方法がいつも使っているwebstormとは全く異なり使えません。なので、nanoエディターを使います。最初から入っています。
$ nano ~/.bash_profile
でナノエディターでバッシュを開いて編集します。以下のものを追加します。初めての人は多分何もないと思います。で、保存。ナノエディターの下の方に保存のコマンドとかありますので、それみてやります。
export PATH=$HOME/.nodebrew/current/bin:$PATH
これでnodebrewをnodebrewコマンドで使えるようになったはずです。では
nodebrew help
とnordebrewのコマンドを叩きます。ちゃんと入って入れば、ヘルプが出ます。うまくパスが通っていないと、パスを指定しろと言われます。
次にnordebrewを介してnode.jsをインストールします。
nodebrew install-binary stable
これで、ノードの安定バージョンがインストールされます。他にもバージョンを指定する方法や、最新を入れる方法等、コマンドあるのでマニュアルをみてください。
インストールしたあとに、
nodebrew use バージョン名
で、使うものを指定して、初めてnodeコマンドが有効になります
ローカルにインストールしたノードの一覧は
nodebrew ls
で確認できます。
そのあとはnpmを使ってNode-REDをインストールします
npm install -g node-red
インストールできたので、実行
node-red
そしてらブラウザでlocalhost:1880にアクセスしてエディターを開きます。
できました!
GPIOが使えるかどうかチェックしたら、また記事を書きます。
1 thought on “raspberry pi 3 に nodebrew を入れて node のバージョンを管理する。node-redも入れる。”