#1.事象
2023.9頃より、C++をGitを同時並行で学習している。
ターミナルとしてC++ではMSYS2を、GitではGitBashを使用していた。
ある時、ファイルをcommitするとエディターのPATHが通らなくなっていた。
(…)code --wait: line 1: code: command not found(…)
#2.解決
誤ってMSYS2でGitのコマンドを入力しており、一部のコマンドでPATHが通らなかった。
GitBashでコマンド実行するとPATHが通り、コミットにも成功した。
#3.原因
- MSYS2とGitBashを混同した
GitBashは、MSYS2をベースにGit実行のため機能に絞って制作されたプログラム群である。※1
ベースが同じなので、操作画面は当然似たような緑や紫色のカラフルな画面となる。(写真1・2参照)
写真1 GitBashの操作画面
写真2 MSYS2の操作画面
- ソフトに特有のPATHがある
GitBashとMSYS2に通っているPATHを調べてみると(echo $PATH)、GitとGitBashで異なるディレクトリが表示される。
これがイマイチ確信できていないが、PATHは一度設定するとすべてのソフトを扱う際に同じPATHが適用されるわけではなく、ソフト特有のPATHを通す方法があるようだ。
自分の環境ではMSYS2が環境PATHを継承していないためこのような症状が出ていたようで、ユーザー変数に「変数→MSYS2_PATH_TYPE」「値→inherit」登録すると解決した。
MSYS2の場合、以下のように、.bash_profileにVSCodeのPATHを追加することで解決した。
①バッシュでexport PATH='ディレクトリ':PATH
を実行。
②.bash_profileにVSCodeのPATHが追加される。
今回はこれが直接的な原因となり、PATHが通らない不具合に悩まされた。
- 同じような悩みを持つ人がネットで調べても見つからなかった。
そもそも初歩的過ぎてすぐ解決できてしまうのかもしれない。
#4.まとめ
・MSYS2とGitBashは混同しないようにする。
・パスはソフトごとに通す。
(msys2の場合、exportコマンドでできる)
参照
※1 MSYS2とGitBashのルーツについて
https://qiita.com/Yuki-Inoue/items/58d3bb564cf2c20fde97
※2 PATH設定方法
https://qiita.com/n_otsuka/items/bfba784f37a98a930629