[環境]
intelチップのiMac
appleシリコンのM1 Mac(mini、imac)
と、今年になってから複数環境でmacのsetupしております。
正確には次の日ではなくターミナル落として再度開いたら、でしたが、、
mac OS 10.15での環境構築のお話です。
nodeやnodebrewをインストールし、bash_profileに環境設定pathを通します。
試したこと
homeの中の「.bash_profile」 ファイルには
export PATH=/usr/local:$PATH
export PATH=$HOME/.nodebrew/current/bin:$PATH
と記述済み。念のためターミナルでも
export PATH=$HOME/.nodebrew/current/bin:$PATH
と実施。
で、ターミナルで
node -v
などを実行してちゃんとバージョンが見れておりました。
ーーーーーーーーー
が、時間を開けてもう一度ターミナルを開き、同じ操作をすると
「zsh: command not found: node」となります。
export PATH=$HOME/.nodebrew/current/bin:$PATH
をターミナルで実行すると動作するため、データは入ってはいるよう。
少しはまりましたが、ターミナルにあるようにシェルが「zsh」というバージョンのため、
.bash_profileに書いたものは無効になってしまいます。
この場合、このファイル名をそのまま.zprofileに名前変更すればうまくいきます!
(または利用シェルバージョンをbashに戻す方法でもよし)
macでは、10.15以降デフォルトでシェルがzhsに変更されております。
理由なんかも合わせてさがすと参考になりました!
https://www.infoq.com/jp/news/2019/07/macos-ditches-bash-for-zsh/
環境変数pathとは?(補足)
例えばあるツールを利用するときに、その処理のコマンドを実施するにはそのツールのパスを指定した上でコマンドを実施する必要があります。
が、毎回npmなどを実施する際にhomeディレクトリからのパスを入力するのは面倒なので、あらかじめコマンドを実施するシェル(ターミナル上の操作)に環境変数pathを読み込ませておくことで、例えば
home/hoge/huge/hogege と実施しないといけない状態だったのが
hogegeだけで実施できるようになる、というものです。今回の例であるnodeなどは通常、macでは.bash_profileというhome直下のファイルにこのpathを書き込むのが一般的でした。
それが最近のmac osでは、.zprofileに変わっている、というお話でした。
補足2
zprofile 以外にも.zshenvや.zshrcなど、環境変数を記載できるファイルがいくつかあります。
それぞれどのような時に読み込まれるかと言った違いがありますが、自分は前述した「.zprofile」で試してます。
https://suwaru.tokyo/zshenv/