ご存じの通り、MSYS2ではパッケージマネージャーとして、Arch Linux由来のpacmanが使われていますが、mingw-w64-x86_64-toolchain や mingw-w64-i686-toolchain のようなやたら長いパッケージ名を指定するのが面倒だと感じたことはないでしょうか。
また、64bit用と32bit用のパッケージを両方インストールしたいときに、わざわざ同じようなパッケージ名を2回指定しなければならないのも面倒だと感じるかもしれません。
そんなときに便利なのが pacboy というwrapperスクリプトです。
インストール
MSYS2のバージョンにより、デフォルトでインストールされている場合とされていない場合があるようです。インストールされていなければ、
$ pacman -S pactoys
でインストールしてください。
使い方
引数無しで pacboy を実行するか、pacboy help で使い方が表示されます。
$ pacboy help
Pacboy 2016.6.24
Copyright (C) 2015, 2016 Renato Silva
Licensed under BSD
This is a pacman wrapper for MSYS2 which handles the package prefixes
automatically, and provides human-friendly commands for common tasks.
Usage:
pacboy [command] [arguments]
Arguments will be passed to pacman or pkgfile after translation:
For 64-bit MSYS2 shell:
name:i means i686-only
name:x means x86_64-only
name:z means clang-i686-only
name:c means clang-x86_64-only
name:u means ucrt-x86_64-only
name:a means clang-aarch64-only
name:p means MINGW_PACKAGE_PREFIX-only
For MSYS shell:
name:m means mingw-w64
name:l means mingw-w64-clang
For all shells:
name: disables any translation for name
repository::name means repository/name
Commands:
sync Shorthand for --sync or --upgrade
update Shorthand for --sync --refresh --sysupgrade
refresh Shorthand for --sync --refresh
find Shorthand for --sync --search
packages Shorthand for --sync --list
files Shorthand for --query --list [--file]
info Shorthand for --query --info [--file]
origin Shorthand for --query --owns or pkgfile
remove Shorthand for --remove --recursive
debug Verbose output for the above commands
このように、パッケージ名を自動で変換してくれたり、いくつかのわかりやすいコマンドを提供してくれます。
パッケージ名の後に :i などのサフィックスを付けるとパッケージ名を変換してくれます。
-
:i- MinGW 32bit (mingw-w64-i686-*) -
:x- MinGW 64bit (mingw-w64-x86_64-*) -
:z- Clang 32bit (mingw-w64-clang-i686-*) -
:c- Clang 64bit (mingw-w64-clang-x86_64-*) -
:u- UCRT 64bit (mingw-w64-ucrt-x86_64-*) -
:a- Clang AArch64 (mingw-w64-clang-aarch64-*) -
:p- 環境変数$MINGW_PACKAGE_PREFIXで指定したパッケージ名 (=現在開いているシェルに応じたパッケージ名) -
:m- MinGW 32bit/64bit 両方 -
:l- Clang 32bit/64bit 両方 -
:- パッケージ名の変換無し
パッケージ名の後に : 等を付けなかった場合は、以下の通り、現在使用しているMSYS2のシェルの種類に応じてパッケージ名の変換が行われます。
- MSYS2 MinGW 32-bit
:mと同様に、MinGW 32/64bit 両方のパッケージ名に変換 - MSYS2 MinGW 64-bit
:mと同様に、MinGW 32/64bit 両方のパッケージ名に変換 - MSYS2 MSYS
:と同様に、変換なし
例:
MSYS2 MSYSシェルから以下のコマンドを実行すると、
$ pacboy -S git toolchain:m
以下を実行したことと同じ結果になります。
$ pacman -S git mingw-w64-x86_64-toolchain mingw-w64-i686-toolchain
どの種類のシェルからでも同じように使うためには、MSYS2のパッケージには常に : を指定し、MinGW32/64のパッケージには :m (あるいは :i や :x) を指定するようにすればよいでしょう。
$ pacboy -S git: toolchain:m