概要
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:\msys64
を C:\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
を呼び出すようにしておけば、ショートカットの修正は不要です。
@echo off
call "%~dp0msys2_shell.cmd" -mingw32 %*
exit
@echo off
call "%~dp0msys2_shell.cmd" -mingw64 %*
exit
@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