Linuxを使い始めると、ほぼ必ずぶつかるのが「パッケージ管理」と「仮想化」という2つのテーマです。
- ソフトウェアをどうやってインストール・アンインストールするのか
- 依存関係が…ってエラーは何を言っているのか
- Debian系とRed Hat系でコマンドが違うのはなぜか
- 仮想マシンやコンテナって何が違うのか
この記事では、こうした疑問を整理しつつ、LPIC-1(特に101試験)のパッケージ管理&仮想化の範囲を、ブログ用にわかりやすく噛み砕いて解説します。
目次
1. はじめに
まず、この記事で押さえておきたい内容を整理しておきます。
- Debian系(.deb)のパッケージ管理が説明できる
- Red Hat系(.rpm)のパッケージ管理が説明できる
- 仮想化の代表的な方式をイメージで語れる
LPIC的に言うと、トピック「Linuxのインストールとパッケージ管理」のうち、
- Debianパッケージ管理
- RPMパッケージ管理
- 仮想化の基礎
をカバーするイメージです。
2. パッケージ管理とは?ざっくり整理
まず共通の前提から。
パッケージ管理とは:
ライブラリやフレームワークなどのソフトウェアをインターネット経由でインストールし、更新・削除・依存関係の解決などをまとめて面倒みる仕組み。
のことです。
この仕組みを提供しているソフトウェアが、パッケージ管理システム(APT、Yum、DNF など)です。
ディストリビューションごとに主流の方式が違います。
| 系列 | パッケージ形式 | 主なコマンド |
|---|---|---|
| Debian系(Ubuntu など) | .deb | dpkg, apt-get, apt-cache, apt |
| Red Hat系(RHEL, CentOS, Fedora など) | .rpm | rpm, yum, dnf |
| openSUSE など | .rpm | zypper(ZYpp) |
3. Debian系パッケージ管理を理解しよう(dpkg と APT)
3-1. dpkg:もっとも素朴な“基礎レイヤ”
dpkg は Debian形式パッケージを直接扱う、もっとも基本的な仕組みです。
拡張子 .deb のファイルに対してインストールや削除を行います。
コマンド例:
dpkg -i package.deb # インストール
dpkg -r package_name # 削除(設定ファイル残す)
dpkg -P package_name # 完全削除(設定ファイルも削除)
よく使うオプションを整理しておきます。
| オプション | 内容 |
|---|---|
-i / --install | パッケージをインストール |
-E | 同じバージョンが入っていれば上書きしない |
-G | それより新しいバージョンが入っていれば上書きしない |
-r / --remove | パッケージ削除(設定ファイル残す) |
-P / --purge | 設定ファイルごと完全削除 |
-l / --list | インストール済みパッケージ一覧 or 検索 |
-s / --status | 指定パッケージの状態・情報 |
-L / --listfiles | パッケージが含むファイル一覧 |
-S / --search | ファイルがどのパッケージ由来か調べる |
イメージとしては、dpkg = 「ローカルの .deb ファイルを直接触るコマンド」という位置づけです。
3-2. APT:依存関係込みで全部面倒みてくれる賢いシステム
APT(Advanced Package Tool)は Debian系で主力のパッケージ管理システムです。
dpkgとの違い:
- インターネット上のリポジトリからパッケージを取得できる
- 依存関係を自動で解決してくれる
パッケージの“インストールや更新の実務”は、ほとんど APT にお任せというケースが多いです。
APT関連の主役はこの3つ:
- apt-get
- apt-cache
- apt(新世代の統合コマンド)
3-2-1. 「依存関係の解決」とは?
例:
- Aというソフトを動かすにはBというライブラリが必須
→ 「AはBに依存している」と言う
APTを使えば、Aをインストールするときに、必要なBもまとめて入れてくれます。
この “関連パッケージを自動で合わせて入れてくれる” 仕組みが 依存関係の解決 です。
3-3. apt-get:インストール・更新の基本コマンド
書式はこんな感じです。
apt-get [オプション] サブコマンド [パッケージ名]
代表的なサブコマンド:
| サブコマンド | 内容 |
|---|---|
install | インストール |
upgrade | 既存パッケージを更新(削除はしない) |
dist-upgrade | 更新時に不要パッケージを削除しつつ更新 |
update | パッケージリストを最新に更新 |
remove | 削除(設定ファイル残す) |
purge | 完全削除(設定ファイルも消す) |
APT が参照するリポジトリ(パッケージダウンロード元)は/etc/apt/sources.list で管理されています。
新しいリポジトリを追加したら、必ず:
apt-get update
で情報を更新するのが基本の流れです。
3-4. apt-cache:情報を“調べる”担当
インストールではなく「情報を調べる」コマンドです。
apt-cache [オプション] サブコマンド [パッケージ名]
代表的なサブコマンド:
| サブコマンド | 内容 |
|---|---|
search | キーワードでパッケージを検索 |
show | パッケージの詳細を表示 |
depends | 依存しているパッケージを表示 |
3-5. apt:apt-get+apt-cache を統合した“今どきのコマンド”
最近の Debian / Ubuntu では、apt コマンドの利用が推奨されています。
apt-get と apt-cache の機能を統合したイメージです。
apt [オプション] サブコマンド [パッケージ名]
主なサブコマンド:
| サブコマンド | 内容 |
|---|---|
install | インストール |
upgrade | 更新(削除なし) |
full-upgrade | 不要パッケージの整理込みの更新 |
update | パッケージリスト更新 |
remove / purge | 削除(設定ファイル残す/含む) |
search | 検索 |
show | 情報表示 |
depends | 依存関係表示 |
実務でも試験勉強でも、「apt さえ確実に使えれば、Debian系はかなり戦える」という感覚でOKです。
4. RPM系パッケージ管理を理解しよう
Red Hat系(RHEL / CentOS / Fedora など)は .rpm 形式のパッケージを使います。
ここでは次の4つを押さえます。
- rpm
- yum
- dnf
- zypper(openSUSE)
4-1. rpm:RPM形式の“素朴な基礎レイヤ”
rpm は .rpm ファイルを直接操作するコマンドです。
Debian系でいう dpkg に近いイメージ。
代表的なオプション
| オプション | 内容 |
|---|---|
-i / --install | インストール |
-U / --upgrade | アップグレード(なければインストール) |
-F / --freshen | 既存のものがある場合だけアップグレード |
-e / --erase | アンインストール |
-q / --query | パッケージ情報を問い合わせ |
インストール・更新・削除時によく組み合わせるオプション
| オプション | 内容 |
|---|---|
-v | 詳細表示 |
-h | 進行状況を # で表示 |
--nodeps | 依存関係を無視して実行(要注意) |
情報表示関連(-q と併用)
| オプション | 内容 |
|---|---|
-a | すべてのインストール済みパッケージ |
-i | 指定パッケージの情報 |
-R | 依存しているファイル |
-l | パッケージに含まれるファイル |
-c | 設定ファイルだけ表示 |
-d | ドキュメントファイルだけ表示 |
-f | 指定ファイルがどのパッケージ由来か調べる |
-p | パッケージファイル名(.rpm)を指定するときに使う |
--changelog | 変更履歴を表示 |

4-2. Yum:RPM版APT的な存在
Yum(Yellowdog Updater Modified)は、RPM世界の代表的パッケージ管理システムです。
- インターネット経由でパッケージを取得できる
- 依存関係も解決してくれる
という意味では、Debian系の APT と同じポジション。
設定ファイルの場所
- /etc/yum.conf:基本設定
- /etc/yum.repos.d/:リポジトリ情報(URLなど)が入った .repo ファイル群
yumコマンドの基本形
yum [オプション] サブコマンド [パッケージ名]
主なサブコマンド
| サブコマンド | 内容 |
|---|---|
install | インストール |
update | 更新 |
remove | アンインストール |
search | 検索 |
info | 詳細情報 |
list | パッケージ一覧 |
deplist | 依存関係表示 |
check-update | 更新可能なパッケージ一覧 |
grouplist | パッケージグループを一覧表示 |
groupinstall | グループ単位でインストール |
RPMの世界には「パッケージグループ」という概念があり、用途別にまとめてインストールできるのも特徴です。
4-3. DNF:Yumの進化形
DNF(Dandified Yum)は、Yum の後継にあたるパッケージ管理システムです。
- Fedora 22以降
- CentOS 8以降
などでは yum から dnf に移行しています。
コマンドの使い方はほぼ同じです。
dnf [オプション] サブコマンド [パッケージ名]
代表的なサブコマンド
| サブコマンド | 内容 |
|---|---|
install | インストール |
upgrade | 更新 |
remove | アンインストール |
search | 検索 |
info | 詳細情報 |
list | パッケージ一覧 |
deplist | 依存関係表示 |
check-update | 更新可能なパッケージ |
group list | グループ一覧 |
groupinstall | グループインストール |
4-4. ZYpp と zypper(openSUSE の世界)
openSUSE では、Yum の代わりに ZYpp というシステムが使われており、操作は主に zypper コマンドで行います。
zypper [グローバルオプション] サブコマンド [コマンドオプション] [パッケージ名]
代表的なサブコマンド
| サブコマンド | 内容 |
|---|---|
install / in | インストール |
update / up | 更新 |
remove / rm | アンインストール |
search / se | 検索 |
info | 詳細情報 |
list-updates / lu | 更新候補の一覧 |
LPIC的には「RPM形式でも、Yum だけでなく ZYpp / zypper も出てくる」と覚えておくと安心です。
5. 仮想化の基礎を理解しよう
5-1. 仮想化とは?
仮想化とは:サーバー・ストレージ・ネットワークといったリソースをソフトウェアの力で分割したりまとめたりして“仮想的な環境” を作る技術のことです。
- 1台の物理マシンに、複数の仮想マシンを立てる
- 1つのOSの中に、軽量なコンテナをたくさん動かす
といったことができます。
クラウド(AWS、GCPなど)で提供される仮想マシンは、インスタンス と呼ばれます。
5-2. 仮想化の3つの代表的な方式
大きく分けて以下の3パターンがあります。
① ホスト型(ホストOSの上で動くタイプ)
- 物理マシン
→ ホストOS(Windows / Linux など)
→ 仮想化ソフト(VirtualBox など)
→ 仮想マシン(ゲストOS)
身近な例:
- 自分のWindowsに VirtualBox を入れて、その中でLinuxを動かす
代表的なソフト:
- VMware Workstation Player
- VirtualBox など
② ハイパーバイザー型(ベアメタル型)
- 物理マシン
→ ハイパーバイザー(専用の薄いOSのようなもの)
→ 複数の仮想マシン(ゲストOS)
特徴:
- ホストOSが存在しない
- サーバー用途でよく使われる
- 物理リソースを効率よく使える
代表例:
- Xen
- KVM など
③ コンテナ型
- 物理マシン
→ ホストOS
→ コンテナエンジン(Docker など)
→ コンテナ(アプリ実行環境)
特徴:
- 仮想マシンより軽量で高速
- OSカーネルはホストと共有
- アプリ単位で分離された環境を作れる
代表例:
- Docker
- Kubernetes(コンテナオーケストレーション)
用語の整理:
- ゲストOS:仮想マシンの中で動くOS
- ハイパーバイザー:仮想マシンを直接管理するソフトウェア
- コンテナ:ホストOS上で分離された軽量なアプリ実行環境
- コンテナエンジン:コンテナを作成・管理するソフト(Dockerなど)
6. まとめ:パッケージ管理と仮想化は「Linux運用の土台」
最後に、ここまでの内容をコンパクトに振り返ります。
用語の整理
- パッケージ管理:ソフトのインストール・更新・削除・依存解決を行う仕組み
- dpkg / APT:Debian系のパッケージ管理
- RPM / Yum / DNF / ZYpp:RPM形式のパッケージ管理
- 仮想化:ソフトウェアでリソースを仮想的に構成する技術
- ホスト型 / ハイパーバイザー型 / コンテナ型:代表的な3つの方式
コマンドのポイントだけ再確認
- dpkg:.deb を直接触る
- apt-get, apt-cache, apt:APTでのインストール・検索・更新
- rpm:.rpm を直接触る
- yum, dnf:RPMの依存関係込みのパッケージ管理
- zypper:openSUSE のパッケージ管理


