Published: 2016-05-09 15:20 +0900 by Chirimen
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_TYPE
を
inherit
に設定すればいいみたいだけど、
msys2_shell.bat は今後のアップデートで上書きされてしまいそうなので、
Windows のユーザープロファイルの方で
環境変数 MSYS2_PATH_TYPE
を inherit
に設定することにした。
ちゃんと Windows の Path が MSYS2 の方に引き継がれたっぽい。