Help us understand the problem. What is going on with this article?

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

More than 3 years have 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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away