見出し画像

[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は、Linuxでソフトウェアパッケージを管理するユーティリティです。パッケージ形式として単純な圧縮ファイルを使用し、テキストベースのパッケージデータベースを維持します」 (出典: https://archlinux.org/pacman/)

pacmanの特徴:なぜArch使いが愛するのか

1. シンプル

無駄な機能なし。必要最小限。
「pacmanは『すべてをやる』ことを目指さない」が公式の方針。

公式説明:

"pacman does not strive to 'do everything.'"

「pacmanは『すべてをやる』ことを目指しません」 (出典: https://archlinux.org/pacman/)

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."

「pacmanの目標は、公式リポジトリからのものであれ、ユーザー自身のビルドからのものであれ、パッケージを簡単に管理できるようにすることです」 (出典: https://wiki.archlinux.org/title/Pacman)

前提条件:Arch系Linuxを使ってること

  • Arch Linux

  • Manjaro

  • EndeavourOS

  • Garuda Linux

Debian系(Ubuntu)やRed Hat系(CentOS)では動かない。
そっちはaptyum使え。

よく使うコマンド:これだけ覚えとけ

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."

「Arch Linuxはローリングリリースディストリビューションです。つまり、Archのバージョンは存在しません。パッケージ更新の継続的なストリームです」 (出典: https://wiki.archlinux.org/title/System_maintenance#Upgrading_the_system)

ステップ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."

「公式リポジトリに加えて、多数の非公式ユーザーリポジトリがあります。最もよく知られている非公式リポジトリは、Arch Linuxサイトでホストされているアーチユーザーリポジトリ、またはAURです」 (出典: https://en.wikipedia.org/wiki/Arch_Linux)

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."

「Pacmanはダウンロードしたパッケージを/var/cache/pacman/pkg/に保存し、古いバージョンやアンインストールされたバージョンを自動的に削除しません」 (出典: https://wiki.archlinux.org/title/Pacman)

トラブルシューティング:よくあるエラー

エラー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のメリット・デメリット

メリット

  1. シンプル: 無駄な機能なし

  2. 高速: 依存関係解決が爆速

  3. ローリングリリース対応: 常に最新

  4. AUR: コミュニティパッケージが豊富

  5. 強力: ダウングレードも自由自在

デメリット

  1. Arch系でしか使えない: 当たり前だが

  2. 学習曲線: コマンドが独特

  3. 部分アップデート禁止: 全部まとめてアップデート必須

  4. ローリングリリースのリスク: たまに壊れる(でも楽しい)

まとめ: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/

いいなと思ったら応援しよう!