PacmanはArchのコンポーネントとして開発されたパッケージ管理システムである。後にFrugalware Linux、KaOSなどの非Arch系ディストロやWindows上のMSYS2にも移植された。

概要

Arch Linux 0.1公開前の2002年3月2日、第1.1版が公開された(それ以前のニュースは残っていないが、ウィキペによると2月25日に初版が公開されたと書かれている)。

システムに導入するパッケージと依存関係の自動解決、ダウンロード、そして導入をフロントエンドなしで行なうのが特徴。ローカルシステムやリポジトリ以外のパッケージファイルの導入とか、リポジトリ上或いは導入済みのパッケージの検索、更新、削除、キャッシュの消去もできる。dpkgやRPMなどと異なり、フロントエンドなしでパッケージ管理の殆どの作業をやってのける。

それからArch Build Systemを用いてソースコードからのパッケージ作成もしてくれる優れモノ。あとバイナリリポジトリも作れる。

かつてはパッケージの圧縮方式にxzを用いていたが、現在ではZstdが用いられる。

Univalentでは

以下のツールが追加で搭載されている。

  • add-pacman-repository - 外部リポジトリ(Ubuntuで言うところのPPA)の追加を補助する対話型シェルスクリプト
  • aptpac - APTの構文でPacmanを操作するラッパー。
  • DNFPac - DNFの構文でPacmanを操作するラッパー。上記「aptpac」より派生。
  • Yay - Arch User Repository用フロントエンド(フロントエンド要らないって言ってたじゃん)
  • Pamac - Arch User Repositoryに対応したソフトウェアセンター。
  • Univalent Tools - パッケージ更新の機能を搭載している。

使用法

参考までにAPT、DNFの操作方法を載せる。先述の通りUnivalentではaptpacを搭載してあるため、APT構文でも操作できる。

※の付いた操作はroot権限が必要。但しyayはrootで実行してはならない(戒め)

操作PacmanyayAPTDNF
パッケージの導入※pacman -S pkgnameyay -S pkgname
yay -Sa pkgname (強制的にAURから導入する場合)
apt install pkgnamednf install pkgname
パッケージの再導入※pacman -S pkgnameyay -S pkgname
yay -Sa pkgname (強制的にAURから導入する場合)
apt install --reinstall pkgnamednf reinstall pkgname
パッケージをファイルから導入※pacman -U pkgpathyay -U pkgpathapt install pkgpathdnf install pkgpath
パッケージの削除※pacman -R pkgnameyay -R pkgnameapt remove pkgnamednf remove pkgname
パッケージの完全削除※pacman -Rs pkgnameyay -Rs pkgnameapt purge pkgnamednf remove pkgname && dnf clean all
パッケージのダウンロード※pacman -Swyay -Sw(AURの場合はパッケージ作成の手前まで)apt install --download-only(キャッシュに保存)
apt download(キャッシュを迂回)
dnf download
リポジトリのパッケージの検索pacman -Ss word1 word2yay -Ss word1 word2apt search word1 word2dnf search word1 word2
リポジトリデータ同期とパッケージの更新※pacman -Syuyayapt update && apt upgradednf upgrade
孤立したパッケージの削除※pacman -Rs $(pacman -Qtdq)yay -Ycapt autoremovednf autoremove
キャッシュの消去※pacman -Sccyay -Scc
yay -Sacc (AURのキャッシュのみ消去)
apt clean
apt autoclean
dnf clean all
パッケージ一覧の表示(バージョン込み)pacman -Qyay -Qapt list --installeddnf list installed
導入済みパッケージの情報を表示pacman -Si pkgname(リポジトリ)
pacman -Qi pkgname(導入済み)
yay -Si pkgname(リポジトリ)
yay -Qi pkgname(導入済み)
apt show pkgnamednf info pkgname
ローカルのパッケージに含まれるファイルの表示pacman -Qlyay -Qldpkg -Lrpm -ql