混ぜるな危険 (msys2とCygwinとGit For Windowsを一緒に使ってはいけません)

まぁ上に書いたとおりです。今まで機会があるたびにお話しさせていただいていたりするのですが、いまだに1つの環境にGit for WindowsとMsys2/MnGW、もしくはGit for WindowsとCygwin、もしくはそれらの全部をインストールして環境が動かなくなった発言をtwitter他で見掛けますが、これらの環境を混在させない方が無難ですというか、混ぜるな危険です。

Msys2はCygwinからForkされた環境なので、ランタイムの内容がCygwinとは違います。Git For Windowsのツール類はMsys2のランタイム上で動いていますが、このGit For Windowsに付属しているMysy2ランタイムはGit For Windows用のMsys2ランタイムなので、本家のMsys2のランタイムとはソースレベルで異なります。つまりこれらの環境にはそれぞれ互換性が無いので同居させない方が良いし、ましてや全部の環境に対してPATHを通すようなことは絶対にしてはいけません。動かなくなります。

基本的に、Windows上で何らかのUnix互換環境が欲しい場合にはCygwinもしくはMsys2を選択し、GitもGit For Windowsではなく、それぞれの環境で用意されたGitの実行ファイルを使用してください。

どうしても混在させたい場合には、それぞれの環境を全部PATHに追加するようなことはしないで、個別の環境用の起動BATファイルなど用意し、PATHの中に複数の環境が混在しないような形で使用しましょう。

同様の理由でGit For Windows SDKの環境を直接PATHに追加することもおすすめしません。

また、Ruby On Railsの開発環境構築などで、RubyのToolkitをインストールすると、古いmsysのツールがインストールされ、PATHが追加されてしまう場合があるので、この場合にもGit For WindowsとRails開発環境のToolkitのPATHが混在しないように起動BATファイルで工夫するなどの処理が必要です。

以上で「お前は何を言っているんだ?」という感じで内容がわからない人は、Windows上にUnix互換環境を作るのは諦めていただいて、素直に仮想マシンにお気に入りのLinuxディストリビューションをインストールしていただくか、Windows Subsystem For Linuxをお使いください。

もう一度大事なことで書きますが、混ぜるな危険 (msys2とCygwinとGit For Windowsを一緒に使ってはいけません)

[amazonjs asin=”4774180017″ locale=”JP” tmpl=”Small” title=”改訂新版Windowsコマンドプロンプトポケットリファレンス”]

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください