msys2

MSYS2の更新に伴う起動用ショートカットの修正

More than 1 year has passed since last update.


概要

MSYS2 の filesystem パッケージが 2016.05-2 に更新されたことにより、それ以前のバージョンを使っていた人は MSYS2 の起動用ショートカットの修正が必要になりました。


詳細

pacman -Suy を実行して、filesystem パッケージを更新すると、以下のような警告が表示されます。

      WARNING: the shell starting scripts have been unified. Please update your

shortcuts to the following targets, otherwise they will STOP WORKING:

* MSYS2_ROOT\msys2_shell.cmd -mingw32
* MSYS2_ROOT\msys2_shell.cmd -mingw64
* MSYS2_ROOT\msys2_shell.cmd -msys

このメッセージに従い、スタートメニュー内のショートカットを修正します。

MSYS2 のショートカットは 3 つあり、それぞれ以下のようになっているはずです。(64bit 版の場合。)

MinGW-w64 Win32 Shell:

C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\mingw32_shell.bat

MinGW-w64 Win64 Shell
C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\mingw64_shell.bat

MSYS2 Shell:
C:\Windows\System32\cmd.exe /A /Q /K C:\msys64\msys2_shell.bat

それを以下のように変更します。

MinGW-w64 Win32 Shell:

C:\Windows\System32\cmd.exe /A /Q /C C:\msys64\msys2_shell.cmd -mingw32

MinGW-w64 Win64 Shell
C:\Windows\System32\cmd.exe /A /Q /C C:\msys64\msys2_shell.cmd -mingw64

MSYS2 Shell:
C:\Windows\System32\cmd.exe /A /Q /C C:\msys64\msys2_shell.cmd -msys

メッセージの通り、バッチファイル名を msys2_shell.cmd に変更し、シェルの種別をオプションで指定しています。

また、cmd.exe のオプションを /K から /C に変更している点も注意してください。これは、1 つ前の filesystem-2016.05-1 から(もう少し前からかも)、バッチファイルの挙動が変更され、すでに開いているコマンドプロンプトからバッチファイルを実行しても、コマンドプロンプトを勝手に閉じなくなったことによります。この影響で /K のままだと、余計なコマンドプロンプトが残ったままになってしまいます。

なお、32bit 版の場合は以下のように C:\msys64C:\msys32 に読み替えてください。

MinGW-w64 Win32 Shell:

C:\Windows\System32\cmd.exe /A /Q /C C:\msys32\msys2_shell.cmd -mingw32

MinGW-w64 Win64 Shell
C:\Windows\System32\cmd.exe /A /Q /C C:\msys32\msys2_shell.cmd -mingw64

MSYS2 Shell:
C:\Windows\System32\cmd.exe /A /Q /C C:\msys32\msys2_shell.cmd -msys


別解

以下のようなバッチファイルを用意して、そこから msys2_shell.cmd を呼び出すようにしておけば、ショートカットの修正は不要です。


mingw32_shell.bat

@echo off

call "%~dp0msys2_shell.cmd" -mingw32 %*
exit


mingw64_shell.bat

@echo off

call "%~dp0msys2_shell.cmd" -mingw64 %*
exit


msys2_shell.bat

@echo off

call "%~dp0msys2_shell.cmd" -msys %*
exit


おまけ

MSYS2 起動用ショートカットで、「実行時の大きさ」を「最小化」に設定しておくと、起動時に一瞬表示されるコマンドプロンプトが目立たなくなって良いです。


おまけ2

msys2-launcherというパッケージをインストールすると、MSYS2 をインストールしたディレクトリの直下に、MSYS2 起動用のランチャーが 3 つインストールされます。(mingw32.exe, mingw64.exe, msys2.exe)

これを使うと、起動時にコマンドプロンプトが表示されることがなくなり、タスクバーにピン止めすることもでき、便利です。

以下のコマンドでインストールできます。

$ pacman -S msys2-launcher