ご存じの通り、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