23
26

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 1 year has passed since last update.

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

Last updated at Posted at 2017-10-21

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

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
23
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?