[AI基礎解説]pacmanってなんだ? - Arch Linux専用の超シンプルなパッケージマネージャー
はじめに
「Arch Linux、カスタマイズ最高!」
「でもパッケージ管理どうすんの?」
「pacmanあるから余裕」
Arch Linuxを使う理由の一つが、このpacmanの存在。
シンプルで高速、そして強力。
この記事では、Arch系Linuxのパッケージマネージャー「pacman」と、コミュニティリポジトリ「AUR」を解説する。
関連記事:
pacmanって何?美味しいの?
pacmanは、Arch Linuxとその派生ディストリビューション専用のパッケージマネージャーだ。
対応ディストリビューション:
Arch Linux(元祖)
Manjaro(初心者向け)
EndeavourOS
Garuda Linux
その他Arch派生
名前の由来は「package manager」。
ゲームのパックマンとは関係ない(たぶん)。
公式サイト: https://archlinux.org/pacman/
公式Wiki: https://wiki.archlinux.org/title/Pacman
"pacman is a utility which manages software packages in Linux. It uses simple compressed files as a package format, and maintains a text-based package database."
pacmanの特徴:なぜArch使いが愛するのか
1. シンプル
無駄な機能なし。必要最小限。
「pacmanは『すべてをやる』ことを目指さない」が公式の方針。
公式説明:
"pacman does not strive to 'do everything.'"
2. 高速
依存関係解決が爆速。
バイナリパッケージだから、インストールも速い。
3. 強力
依存関係を完璧に管理。
ダウングレードもアップグレードも自由自在。
4. ローリングリリース対応
Arch Linuxはローリングリリース(常に最新)。
pacmanもそれに完全対応。
公式情報:
"The goal of pacman is to make it possible to easily manage packages, whether they are from the official repositories or the user's own builds."
前提条件:Arch系Linuxを使ってること
Arch Linux
Manjaro
EndeavourOS
Garuda Linux
Debian系(Ubuntu)やRed Hat系(CentOS)では動かない。
そっちはaptやyum使え。
よく使うコマンド:これだけ覚えとけ
pacmanのコマンドは独特。オプションが大文字小文字混在。
# システムアップデート(超重要!)
sudo pacman -Syu
# パッケージ検索
pacman -Ss パッケージ名
# パッケージ情報表示
pacman -Si パッケージ名
# パッケージインストール
sudo pacman -S パッケージ名
# パッケージアンインストール(依存関係ごと)
sudo pacman -Rns パッケージ名
# インストール済みパッケージ一覧
pacman -Q
# インストール済みパッケージ検索
pacman -Qs パッケージ名
# 孤立したパッケージ(不要な依存関係)を削除
sudo pacman -Rns $(pacman -Qdtq)
# キャッシュクリーンアップ
sudo pacman -Sc
公式man page: https://archlinux.org/pacman/pacman.8.html
オプションの意味
オプション 意味 -S Sync(インストール・アップデート) -R Remove(削除) -Q Query(ローカル検索) -s search(検索) -y リポジトリDB更新(yrefresh) -u アップグレード(upgrade) -n 設定ファイルも削除 -s (Rと併用) 依存関係も削除
組み合わせて使う。
-Syuは「リポジトリ更新 + システムアップグレード」。
pacman使用の基本フロー:必ず守れ
ステップ1: システムアップデート
sudo pacman -Syu
これ実行しないと、システムが壊れる可能性がある。
Arch Linuxは部分アップデート非推奨。全部まとめてアップデートが鉄則。
公式警告:
"Arch Linux is a rolling release distribution. That means there are never versions of Arch; it's a continuous stream of package updates."
ステップ2: パッケージをインストール
sudo pacman -S python
依存関係も全部自動で入る。
ステップ3: 定期的にアップデート
sudo pacman -Syu --noconfirm
--noconfirmは確認なしで実行。慣れたら使え。
実践例:よく使うパッケージをインストール
# まずシステムアップデート
sudo pacman -Syu
# 開発ツール
sudo pacman -S git curl wget vim base-devel
# Python
sudo pacman -S python python-pip
# Node.js
sudo pacman -S nodejs npm
# Docker
sudo pacman -S docker docker-compose
# エディタ
sudo pacman -S code # VSCode
AUR (Arch User Repository):pacmanの真骨頂
AURって何?
AURは、コミュニティが管理するパッケージリポジトリ。
公式リポジトリにないパッケージが大量にある。
Google Chrome、Spotify、Discord、など。
公式Wiki: https://wiki.archlinux.org/title/Arch_User_Repository
重要: AURはpacmanでは直接管理できない。
別ツール(AURヘルパー)が必要。
公式説明:
"In addition to the official repositories, there are a number of unofficial user repositories. The most well-known unofficial repository is the Arch User Repository, or AUR, hosted on the Arch Linux site."
AURヘルパー:yay推奨
yay (Yet Another Yaourt) が現在の主流。
yayのインストール
# 依存関係をインストール
sudo pacman -S --needed git base-devel
# yayをビルド&インストール
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
yayの使い方
# パッケージ検索(公式 + AUR)
yay パッケージ名
# AURパッケージをインストール
yay -S google-chrome
# システム全体をアップデート(公式 + AUR)
yay -Syu
# AURパッケージをアンインストール
yay -Rns google-chrome
yayはpacmanとほぼ同じコマンド体系。
pacmanの代わりにyayを使えば、公式もAURもまとめて管理できる。
pacmanのキャッシュ管理:ディスク容量を節約
pacmanはダウンロードしたパッケージを全部保存する。
# キャッシュ場所
/var/cache/pacman/pkg/
放置すると数GB食う。定期的に掃除しろ。
# 最新3バージョンを残して削除
sudo paccache -r
# 全部削除(非推奨)
sudo pacman -Scc
自動クリーンアップ:
# 週1で自動クリーンアップ
sudo systemctl enable paccache.timer
sudo systemctl start paccache.timer
公式情報:
"Pacman stores its downloaded packages in /var/cache/pacman/pkg/ and does not remove the old or uninstalled versions automatically."
トラブルシューティング:よくあるエラー
エラー1: "failed to commit transaction (conflicting files)"
原因: ファイルが既に存在してる。
解決策:
# 上書きを強制(慎重に)
sudo pacman -S パッケージ名 --overwrite '*'
ただし、これは最終手段。まず原因を調べろ。
エラー2: "error: failed to init transaction (unable to lock database)"
原因: 別のpacmanプロセスが実行中、またはロックファイルが残ってる。
解決策:
# プロセス確認
ps aux | grep pacman
# ロックファイル削除(pacmanが本当に動いてないことを確認してから)
sudo rm /var/lib/pacman/db.lck
エラー3: "error: GPGME error: No data"
原因: GPGキーの問題。
解決策:
# キーリングをアップデート
sudo pacman -S archlinux-keyring
# システムアップデート
sudo pacman -Syu
エラー4: AURパッケージのビルド失敗
原因: 依存関係が足りない。
解決策:
# base-develを確実にインストール
sudo pacman -S base-devel
# 依存関係を確認してインストール
yay -S 不足しているパッケージ
pacmanの高度な機能
パッケージのダウングレード
# キャッシュから古いバージョンをインストール
sudo pacman -U /var/cache/pacman/pkg/パッケージ名-バージョン.pkg.tar.zst
パッケージグループのインストール
# グループ一覧
pacman -Sg
# グループ全体をインストール
sudo pacman -S gnome
パッケージの依存関係を確認
# このパッケージが何に依存してるか
pactree パッケージ名
# このパッケージに何が依存してるか
pactree -r パッケージ名
pacmanのメリット・デメリット
メリット
シンプル: 無駄な機能なし
高速: 依存関係解決が爆速
ローリングリリース対応: 常に最新
AUR: コミュニティパッケージが豊富
強力: ダウングレードも自由自在
デメリット
Arch系でしか使えない: 当たり前だが
学習曲線: コマンドが独特
部分アップデート禁止: 全部まとめてアップデート必須
ローリングリリースのリスク: たまに壊れる(でも楽しい)
まとめ:pacmanはArch使いの相棒
Arch Linux使うなら、pacmanは避けて通れない。
そしてArch使いは、pacmanを愛してる。
基本の呪文:
sudo pacman -Syu
これを週1〜2回実行してればOK。
AUR使うなら:
yay -Syu
これ一発で公式もAURも全部アップデート。
関連記事:
この記事が役に立ったら、noteでスキとフォローよろしく!
質問はコメントで受け付けるぞ。
参考文献:
Pacman Official Site: https://archlinux.org/pacman/
ArchWiki - Pacman: https://wiki.archlinux.org/title/Pacman
ArchWiki - AUR: https://wiki.archlinux.org/title/Arch_User_Repository
Wikipedia - Arch Linux: https://en.wikipedia.org/wiki/Arch_Linux
It's FOSS - Pacman Commands: https://itsfoss.com/pacman-command/
