21
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2016-06-13

概要

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
21
24
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?