pacman
msys2
pacboy

MSYS2ではpacmanの代わりにpacboyを使おう

ご存じの通り、MSYS2ではパッケージマネージャーとして、Arch Linux由来のpacmanが使われていますが、mingw-w64-x86_64-toolchainmingw-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, name:i means i686-only
        For 64-bit MSYS2, name:x means x86_64-only
        For MSYS shell, name:m means mingw-w64
        For all shells, name: disables any translation for name
        For all shells, 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 を付けると 32bit 用、:x で 64bit 用、:m で 32/64bit 両方のパッケージ名に変換してくれます。: であれば変換は行われません。

パッケージ名の後に : 等を付けなかった場合は、以下の通り、MSYS2のシェルの種類に応じてパッケージ名の変換が行われます。

  • MSYS2 MinGW 32-bit
    :mと同様に、32/64bit 両方のパッケージ名に変換
  • MSYS2 MinGW 64-bit
    :mと同様に、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