MSYS2 で PATH が引き継がれない

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_TYPEinherit に設定すればいいみたいだけど、 msys2_shell.bat は今後のアップデートで上書きされてしまいそうなので、 Windows のユーザープロファイルの方で 環境変数 MSYS2_PATH_TYPEinherit に設定することにした。

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

Share

Latest Posts

Django Rest Framework のテストでハマったこと (4)

Django で既存データベースから inspectdb で作成した models.my は managed = False となっている。 そのままだと test を実行したときに、 テスト用データベースにモデルに対応したテーブルが作成されない。

Django Rest Framework のテストでハマったこと (3)

factory_boy の Faker() で、 取得した値を加工してから使用する話。

Django Rest Framework のテストでハマったこと (2)

Django のテスト用データを作成するのによく用いられる factory_boy で locale を指定して日本語圏用のデータを利用する話。