メモの日々


2017年01月12日(木) [長年日記]

[howto][windows] pacmanを使う

MSYS2を使っている。MSYS2はパッケージ管理にpacmanを使っているのでpacmanの使い方を覚えないといけない。基本的なことだけメモ。

オペレーション

pacmanはまず「オペレーション」を指定して、その後にオペレーション用のオプションを指定するスタイルみたい。

$ pacman --help
使用方法:  pacman <オペレーション> [...]
オペレーション:
    pacman {-h --help}
    pacman {-V --version}
    pacman {-D --database} <オプション> <パッケージ>
    pacman {-F --files}    [オプション] [パッケージ]
    pacman {-Q --query}    [オプション] [パッケージ]
    pacman {-R --remove}   [オプション] <パッケージ>
    pacman {-S --sync}     [オプション] [パッケージ]
    pacman {-T --deptest}  [オプション] [パッケージ]
    pacman {-U --upgrade}  [オプション] <ファイル>

オペレーションと一緒に 'pacman {-h --help}' を使うことでオプションを一覧できます

インストール済みパッケージの一覧表示

--query オペレーションに何もオプションを与えなければインストール済みパッケージの一覧が表示される。

$ pacman -Q
bash 4.3.046-1
bash-completion 2.3-1
(省略)
xz 5.2.2-1
zlib 1.2.8-3

インストール済みパッケージの更新

パッケージを一括更新するには --sync オペレーションに --refresh, --sysupgrade オプションを与える。

$ pacman -Syu
:: パッケージデータベースの同期中...
 mingw32 は最新です
 mingw64 は最新です
 msys は最新です
:: Starting core system upgrade...
 何も行うことがありません
:: システム全体の更新を開始...
 何も行うことがありません

リポジトリ上のパッケージの一覧表示

リポジトリ上のパッケージを表示するのにも --sync オペレーションを使うみたい。--list オプションを与える。

$ pacman -Sl
mingw32 mingw-w64-i686-OpenSceneGraph 3.5.3-2
mingw32 mingw-w64-i686-OpenSceneGraph-debug 3.5.3-2
(省略)
msys zsh 5.1.1-1
msys zsh-doc 5.1.1-1

リポジトリ上のパッケージの説明を表示

パッケージの説明は --sync オペレーションに --info オプションとパッケージ名を指定すると表示できる。--infoを2回指定すると表示される情報が少し増えるみたい。

$ pacman -Sii gcc
リポジトリ             : msys
名前                   : gcc
バージョン             : 5.3.0-3
説明                   : The GNU Compiler Collection - C and C++ frontends
アーキテクチャ         : x86_64
URL                    : http://gcc.gnu.org
ライセンス             : GPL  LGPL  FDL  custom
グループ               : msys2-devel
提供                   : なし
依存パッケージ         : gcc-libs=5.3.0-3  binutils  gmp  isl  mpc  mpfr  msys2-runtime-devel  msys2-w32api-headers  msys2-w32api-runtime  windows-default-manifest
提案パッケージ         : なし
必要パッケージ         : bc  gcc-fortran  llvm-svn
任意パッケージ         : なし
衝突パッケージ         : なし
置換パッケージ         : なし
ダウンロード容量       : 21.73 MiB
インストール容量       : 88.76 MiB
パッケージ作成者       : Alexey Pavlov <alexpux@gmail.com>
ビルド日時             : 2016年04月01日 05時07分40秒
MD5 Sum                : 77e38c3f73668ebe8b0b4b634944b54d
SHA-256 Sum            : 61fdb8e212dbb60b9f2d6ed96390f9a4ed22ea9afa65604b96f1936810673420
署名                   : 5F92EFC1A47D45A1

パッケージのインストール

パッケージのインストールをするのも --sync オペレーション。パッケージ名を与える。

$ pacman -S gcc
依存関係を解決しています...
衝突するパッケージがないか確認しています...

パッケージ (8) binutils-2.25.1-2  isl-0.16.1-1  mpc-1.0.3-1  msys2-runtime-devel-2.6.0-1  msys2-w32api-headers-5.0.0.4732.6172d2f-1  msys2-w32api-runtime-5.0.0.4732.6172d2f-1
               windows-default-manifest-6.4-1  gcc-5.3.0-3

合計ダウンロード容量:   36.57 MiB
合計インストール容量:  250.96 MiB

:: インストールを行いますか? [Y/n]

パッケージのアンインストール

パッケージのアンインストールには --remove オペレーションを使う。

何もオプションを指定しないと

$ pacman -R gcc
依存関係を確認しています...

パッケージ (1) gcc-5.3.0-3

合計削除容量:  88.76 MiB

:: 以上のパッケージを削除しますか? [Y/n]

のように依存パッケージを削除してくれない。依存パッケージを削除するには --recursive オプションを付ける必要がある。

$ pacman -Rs gcc
依存関係を確認しています...

パッケージ (8) binutils-2.25.1-2  isl-0.16.1-1  mpc-1.0.3-1  msys2-runtime-devel-2.6.0-1  msys2-w32api-headers-5.0.0.4732.6172d2f-1  msys2-w32api-runtime-5.0.0.4732.6172d2f-1
               windows-default-manifest-6.4-1  gcc-5.3.0-3

合計削除容量:  250.96 MiB

:: 以上のパッケージを削除しますか? [Y/n]