先日、前回設定したNode.jsで遊ぼうと思い、macでターミナルを立ち上げたのですが、、、
$ node -v -bash: node: command not found
なぜか使えなくなっていました(泣)
ちょっと調べてみたところ、ターミナルで設定した環境変数はターミナルを終了すると元に戻ってしまうようです。
つまり、今後永続的に使用したい環境変数は、bashの設定ファイル(.bash_profile
または.bashrc
)に書き込む必要があります。
そこで、今回はコマンドが使用できない場合に環境変数にパスを追加する方法をご紹介します!
そもそも.bash_prifileと.bashrcの違いって何?
bashの設定ファイルの中で使用頻度が高いのは、環境変数の設定の際に使用する.bash_profile
と.bashrc
だと思います。
では、この.bash_profile
と.bashrc
との違いは何でしょうか?
まず、.bash_profile
は「ログイン時にのみ読み込まれる設定ファイル」です。
ログイン時に読み込まれるだけなので、その後にファイルの中身を編集しても、そのままでは反映されません。
一方、.bashrc
は「.bash_profile
から呼び出す設定ファイルで、シェル起動時にも読み込まれる」ようになっています。
つまり、ログイン時だけではなくターミナルを起動した時にも読み込まれるため、ファイルの中身を編集した後はターミナルを再起動するだけで変更が反映されます。
それでは、どちらに設定を記述したとしても再ログインやターミナルの再起動が必要なのかというと、そういうわけでもありません。
編集内容を反映させるためのコマンドがあります。
それはsource
コマンドです。
これはファイルに書かれた内容をコマンドとして実行するためのものです。
こちらを使用する場合、以下のようにすると設定内容が反映されます。
$ source ~/.bash_profile
または
$ source ~/.bashrc
コマンドだけで解決するので、こちらの方が便利ですね!
nodeコマンドにパスを通す
それではnodeコマンドにパスを通して行きましょう。
今回は.bashrc
に環境変数を追加します。
$ echo 'export PATH=$PATH:/Users/xxxxx/.nodebrew/current/bin' >> ~/.bashrc
次に、.bash_profile
から.bashrc
を読み込むことができるように設定します。.bash_profile
にすでに以下の記述がある場合、この手順は省略してOKです。
if [ -f ~/.bashrc ] ; then . ~/.bashrc fi
それではsource
コマンドで読み込み直しましょう。
$ source ~/.bashrc source ~/.bash_profile
これで再びnodeコマンドを使用することができるようになったはずです。
$ node -v v6.10.3
合わせてnpmも確認してみましょう。
$ npm -v 3.10.8
おわりに
今回はnodeコマンドを使用するために、環境変数の追加を行いました。
基本的に他のコマンドを使用する場合でも、環境変数の設定と反映の仕方は今回と同じです。
それでは、本日はここまで。
お読みいただきありがとうございました!