1. TOP
  2. Webサービス
  3. Node.js
  4. firebase-toolsをインストールするために新しくanyenvのパスを通した件

firebase-toolsをインストールするために新しくanyenvのパスを通した件

anyenv_pathvariable_error_1

anyenvをインストールしたときに環境変数($PATH)の設定を間違える。その修正方法について

以前の記事で、anyenvのパスを通しました。ですがここに書かれた状況のままで、Googleのfirebase-toolsをインストールしようとしたら”-bash: firebase: command not found”と言って叱られたのでそのときの対処方法をメモっておきます。

状況の確認

$ ndenv versions
  v4.3.0
  v4.3.1
* v4.7.0 (set by /Users/MYUSERNAME/.anyenv/envs/ndenv/version)
  v8.11.3

以前はanyenvのndenvを使って、Node.jsのv4.7.0を使っていました。

ndenvコマンドによるバージョンの切り換え

$ ndenv global v8.11.3
  v4.3.0
  v4.3.1
  v4.7.0
* v8.11.3 (set by /Users/MYUSERNAME/.anyenv/envs/ndenv/version)
$ node -v
v8.11.3

firebase-toolsを使うにあたってv8.11.3にしたかったので、ndenvにglobalオプションをつけて使用するNode.jsのバージョンを変更しました。

-bash: firebase: command not foundの表示

$ sudo npm install -g firebase-tools
/Users/MYUSERNAME/.anyenv/envs/ndenv/versions/v8.11.3/bin/firebase -> /Users/MYUSERNAME/.anyenv/envs/ndenv/versions/v8.11.3/lib/node_modules/firebase-tools/bin/firebase
+ firebase-tools@4.0.1
updated 1 package in 16.983s

/Users/MYUSERNAME/.anyenv/envs/ndenv/versions/v8.11.3/bin

ndenvを使ってv4.7.0からv8.11.3に切り換えただけで、npm(Node Package Manager)を使ってfirebase-toolsをインストールしました。

$ firebase -V
-bash: firebase: command not found

ですが、実際にfirebaseコマンドを叩くと、「そんなコマンドはない」と指摘されます。

解決方法

ここまでの状況を確認すると、エラーが発生する原因は、“/Users/MYUSERNAME/.anyenv/envs/ndenv/versions/v8.11.3/bin”にfirebase-toolsのパスが通っていないことにあるようです。

従前のパスの設定

$ echo $PATH
...
OLDPWD=/Users/HiroshiFukui/.anyenv/envs/ndenv/versions/v8.11.3/bin

$ view ~/.bash_profile
#!/bash/profile
export PATH=$HOME/.anyenv/bin:$PATH
eval "$(anyenv init -)"

.anyenvに関するパスは、.bash_profileで設定しています。中身を確認すると”$HOME/.anyenv/bin”までしか通っていません。

firebase-toolsを通すための設定

$ cp ~/.bash_profile ~/.bash_profile.org
$ view ~/.bash_profile
#!/bash/profile
export PATH=$HOME/.anyenv/envs/ndenv/versions/v8.11.3/bin:$PATH
eval "$(anyenv init -)"
:wq

元の設定ファイルを”.bash_profile.org”として残しつつ、.anyenvのディレクトリの中でどこまでパスを通すのか、詳細に記述します。今回のケースでは、Node.jsのv8.11.3を使いますので、v8.11.3までパスを通すことを明らかにします。

再インストールと確認

firebase-tools_install_anyenv_1

$ sudo npm install -g firebase-tools
...
$ firebase -V
4.0.2
$ which firebase
/Users/HiroshiFukui/.anyenv/envs/ndenv/shims/firebase

再度、npmを使ってfirebase-toolsがインストールします。npmコマンドを実行すると途中でずらずらとメッセージが出てきました。ただそのメッセージが出力された後に、firebaseコマンドを実行するとバージョンが出力されます。またwhichコマンドを使ってfirebase-toolsのコマンドを確認すると、パスは通っている様子が分かります。