MSYS2 で Windows の PATH が引き継がれなくなっていた

概要

MSYS2 を更新して端末エミュレータ (mintty) を立ち上げたら、 Windows の環境変数 Path の内容が bash に引き継がれなくなっていた。

引き継ぎたいときは Windows の環境変数で MSYS2_PATH_TYPE に inherit を設定するとよい。

はじめに

ひさしぶりに MSYS2 の更新をしたんだけれど、 更新後に TeX を実行しようとしたら TeX の実行ファイルに PATH が通っていなかった。

Windows の他の環境変数は引き継がれているので、 どうも PATH だけクリアして再設定しているような感じ。

~/.profile か ~/.bashrc とかに記述すればいいのかもしれないけれど、 Windows 側アプリケーションの追加削除に応じて自分で修正するのは面倒すぎる。

mintty

Windows のスタートメニューには MSYS2 Shell とか MinGW-w64 Win64 Shell などの項目がある。 これらはそれぞれ異なるバッチファイルを実行しており、 環境変数が若干異なるが、どれも mintty が立ち上がる。

例えば MSYS2 Shell では msys2_shell.bat を実行する、と言った具合に。

で、msys2_shell.bat の中身を見ると、 以下の記述がコメントに書かれていた。

rem To export full current PATH from environment into MSYS2 uncomment next line
rem set MSYS2_PATH_TYPE=inherit

対策

コメントの内容からして環境変数 MSYS2_PATH_TYPEinherit に設定すればいいみたいだけど、 msys2_shell.bat は今後のアップデートで上書きされてしまいそうなので、 Windows のユーザープロファイルの方で 環境変数 MSYS2_PATH_TYPEinherit に設定することにした。

ちゃんと Windows の Path が MSYS2 の方に引き継がれたっぽい。