はじめに
macでプロジェクトを新規で立ちあげる際や途中でアサインされた際に、npmやyarnで必要なものをインストールしてコマンドを実行すると
hoge:command not found
に出くわすことがある。
そもそもインストールされていない場合を除いて、大体いつもPATHを通せば解決するのだが、パスの設定ってそんなに頻繁に触らないからすぐ忘れるしそもそも何が書いてあるのかわからない自分のためのメモ。
PATHってなんだ
PATH(パス)は環境変数で設定できる変数のこと。
「PATHを通す」とは対象のアプリの場所をこの環境変数に設定すること。
環境変数はPCのいろんな情報を保存しておけるメモのようなもので、コマンドを実行する際にこの環境変数を参照して実行する。
本来、インストールしたアプリをコマンドで実行する時には、そのアプリが格納されている場所をフルパスで指定して実行する必要がある。
例えば「node」のバージョンを見たい時、nodeがある場所を指定して実行する必要がある。
/user/local/~nodeがある場所 -v
でも、これを毎回覚えるのは嫌なので、
環境変数に「nodeはここに入ってるよ」と保存しておくことで省略することができる。
環境変数にnodeの場所を記載しておくと、いつもの下記のようなコマンドが実行できるようになる。
node -v
macの場合、この環境変数は「.bash」と「.bash_profile」という2つのファイルで設定できる。
どちらも不可視ファイルになっていてuserフォルダの中に格納されている、
ちなみに不可視ファイルを表示させるにはfinderでuserフォルダを開いて「command」+「shift」+「.」すると表示される。
もしくはコマンドでuserディレクトリで下記コマンドを実行する。(macの場合)
defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder
「.bash」と「.bash_profile」
「.bash」と「.bash_profile」は謎に2つあるように見えるが、それぞれ実行されるタイミングが違う。
ターミナルを起動すると、.bash_profile→.bashの順番で読み込まれる。
.bash_profileが読み込まれるのはこの時だけで、.bashはコマンドを打つたびに読み込まれる。
なので環境変数など一回読み込めばいいものは.bash_profileに記載する。
現状の設定されているPATHはコマンドでも確認できる。
echo $PATH
.bash_profileの書き方
つまり「PATHを通す」とは.bash_profileにPATHを追加するということ。
.bash_profileは「変数にパスを格納」して「export」することで使用できる。
PATH1="$HOME/.nodebrew/current/bin:$PATH"
PATH2="$HOME/opt/homebrew/bin:$PATH"
export PATH1 PATH2
$HOME
$HOMEはデフォルトのユーザーのフォームディレクトリーのパス。
echo $HOME
/Users/hogehoge~
export
exportは「exportコマンド」のことで.bash_profileが読み込まれたら実行される。
.bash_profileを反映する
.bash_profileは保存して閉じただけでは反映されない。
sourceコマンドで実行することで反映される。(最初の方は忘れがち)
source ~/.bash_profile
以上!