Windowsでgccを使う場合は普通MSYS+MinGWを入れ、MinGW Shellから使う。一方gitを使うときはmsysgitを入れ、Git Bashから使う。msysgitは名前の通りMSYSをベースにしたものだが、インストールは独立したものになっている(デフォルトではMSYS+MinGWはC:\MinGWに、msysgitはC:\Program Files\gitにインストールされる)。
そのためMinGW Shellからgitは使えないし、Git Bashからgccは使えない。そこで両方を統一して使う方法を考えてみた。
どちらもMSYSベースだからインストール先を同じにしてしまえば動くんじゃないかという単純な発想のもと、実際やってみた。試した環境は以下の通り。
- Windows 7 Ultimate 64bit
- Git-1.7.6-preview20110708.exe(msysgit)
- mingw-get-inst-20110802.exe(MinGW + MSYS)
MinGW+MSYSを入れると、デフォルトでは以下のようなディレクトリ構成になる。
C:/MinGW/ +- bin/ +- doc/ : +-msys/ | +- 1.0/ | +- bin/ | +- doc/ | : :
MinGW(つまりgccやgdbなど)はC:\MinGW\binに入り、MSYS(lsやcpなど)はC:\MinGW\msys\1.0\binに入る。ということで、msysgitをC:\MinGW\msys\1.0以下に入るようにすればよさそうだ。
ではどちらを先に入れるか?MSYSとmsysgitでは同じファイルもあり(lsなど)、後から入れた方が上書きすることになるだろう。MinGW+MSYS -> msysgitの順に入れたところMSYSの挙動がおかしくなり、lsコマンドで固まるようになってしまった。仕方なくアンインストールしてmsysgit -> MinGW+MSYSの順にしたところ、うまく動いた。