yshio
2018年4月4日 15時31分
いつもお世話になっております。塩野と申します。
以下のブログを参考にさせて頂き、Armadillo-IoT(G3)でnode.jsのサンプルプログラムを動かせるようになりました。
Armadillo-IoT(G3/G3L):Node.jsを使えるようにする
https://users.atmark-techno.com/blog/615/2661
ただ、1度Armadilloの電源を切り、再起動させた後から、nodeコマンドが認識されなくなってしまいました。
ブログ中にある「nvm」コマンドは正常に認識されており、インストールしたバージョン(v8.11.1)の情報も取得できています。
何が原因なのでしょうか?
コメント
yshio
> 大塩です。
>
> > ただ、1度Armadilloの電源を切り、再起動させた後から、nodeコマンドが認識されなくなってしまいました。
> > ブログ中にある「nvm」コマンドは正常に認識されており、インストールしたバージョン(v8.11.1)の情報も取得できています。
> > 何が原因なのでしょうか?
>
> 上記の問題は、「nvm use 」というコマンドを実行することで解決できます。
> には使用するNode.jsのバージョンを指定してください。(例:nvm use v9.11.0)
>
> Node.jsは「複数のバージョンをインストールでき、使用する前にユーザがバージョンを指定する」という仕様となっています。
> この仕様から、Armadilloを再起動させると「使用するNode.jsのバージョン」がリセットされ、Node.jsのパスが消えてしまうようです。
> このため、Armadillo再起動の際は「nvm use 」コマンドを使用してパスを通しなおす必要があります。
>
> コマンドの説明は[nvm help]コマンドで確認できるため、参考にしてください。
>
> 以上です。
> よろしくお願いします。
塩野です。
毎回、バージョンを選択する必要があったのですね。
Armadilloを再起動した後、「nvm use 8.11.1」というコマンドを実行したところ、nodeコマンドが認識されました。
詳細なご回答、ありがとうございました。
at_syunya.ohshio
大塩です。
追記します。
Armadillo再起動のたびに[nvm use ]を使用することでも実行は可能ですが、後々「事前のnvm useの入力し忘れ」「環境変数のスコープ誤り」が発生する可能性があります。
このようなミスを防ぐため、まずデフォルトの実行バージョンを設定し、それを用いて明示的にプログラムを実行する方法をお勧めします。
■デフォルトの実行バージョン設定
「nvm alias default 」コマンドを用いることで実現可能です。
このコマンドによって、defaultという変数を用いてを指定できます。
■明示的にプログラムを実行する
「nvm run [プログラム名] 」コマンドによって、Node.jpのバージョンでプログラムを実行することができます。
defaultがすでに設定されているのであれば、「nvm run default [プログラム名]」で実行可能です。
上記方法であれば、どのバージョンを使用しているか明示的でありバージョンエラーを引き起こしにくく、事前に毎回「nvm use」を使用する必要もありません。
公式のドキュメントを記載しますので、コマンドの使用方法等参考にしてください。
https://github.com/creationix/nvm#usage
またnvmは複数バージョンを管理するツールであり、もし複数バージョンを使用しないのであれば直接Node.jsをインストールするほうがよく、無理にnvmは使用する必要はないと思われます。
以上です。
yshio
> 大塩です。
>
> 追記します。
>
> Armadillo再起動のたびに[nvm use ]を使用することでも実行は可能ですが、後々「事前のnvm useの入力し忘れ」「環境変数のスコープ誤り」が発生する可能性があります。
> このようなミスを防ぐため、まずデフォルトの実行バージョンを設定し、それを用いて明示的にプログラムを実行する方法をお勧めします。
> ■デフォルトの実行バージョン設定
> 「nvm alias default 」コマンドを用いることで実現可能です。
> このコマンドによって、defaultという変数を用いてを指定できます。
> ■明示的にプログラムを実行する
> 「nvm run [プログラム名] 」コマンドによって、Node.jpのバージョンでプログラムを実行することができます。
> defaultがすでに設定されているのであれば、「nvm run default [プログラム名]」で実行可能です。
>
> 上記方法であれば、どのバージョンを使用しているか明示的でありバージョンエラーを引き起こしにくく、事前に毎回「nvm use」を使用する必要もありません。
>
> 公式のドキュメントを記載しますので、コマンドの使用方法等参考にしてください。
> https://github.com/creationix/nvm#usage
>
> またnvmは複数バージョンを管理するツールであり、もし複数バージョンを使用しないのであれば直接Node.jsをインストールするほうがよく、無理にnvmは使用する必要はないと思われます。
>
> 以上です。
塩野です。
node.jsを使用するには、nvmが必須だと思っていました。
今のところ複数のバージョンを使用する予定はないので、node.jsを直接インストールする方法を探してみたいと思います。
何度もありがとうございます。
at_syunya.ohshio
2018年4月5日 15時07分
大塩です。
> ただ、1度Armadilloの電源を切り、再起動させた後から、nodeコマンドが認識されなくなってしまいました。
> ブログ中にある「nvm」コマンドは正常に認識されており、インストールしたバージョン(v8.11.1)の情報も取得できています。
> 何が原因なのでしょうか?
上記の問題は、「nvm use 」というコマンドを実行することで解決できます。
には使用するNode.jsのバージョンを指定してください。(例:nvm use v9.11.0)
Node.jsは「複数のバージョンをインストールでき、使用する前にユーザがバージョンを指定する」という仕様となっています。
この仕様から、Armadilloを再起動させると「使用するNode.jsのバージョン」がリセットされ、Node.jsのパスが消えてしまうようです。
このため、Armadillo再起動の際は「nvm use 」コマンドを使用してパスを通しなおす必要があります。
コマンドの説明は[nvm help]コマンドで確認できるため、参考にしてください。
以上です。
よろしくお願いします。