Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

2. Debian GNU/Linux

Debianの概要と設計思想

Debian(デビアン、正式名称:Debian GNU/Linux)は、1993年にイアン・マードック(Ian Murdock)氏によって立ち上げられた、現存する最も歴史のあるオープンソース・ディストリビューションの1つです。 特定の営利企業によって所有されておらず、世界中のボランティア開発者コミュニティによって民主的かつ厳格な規約のもとで開発・維持されています。

Debian の根底には「Debian 社会契約」と「Debian フリーソフトウェアガイドライン(DFSG)」という厳格な哲学があります。 ソースコードが完全に公開され、改変や再配布が無条件で認められている完全なフリーソフトウェアのみを公式リポジトリに収録することを徹底しています。

3つのリリースモデル

Debian は、ソフトウェアのライフサイクルと安定性に応じて 3 つのブランチ(版)を提供しています。

ブランチ名特徴と位置づけ想定される用途
Stable(安定版)極めて徹底したテストを経て凍結された版。新機能は追加されず、セキュリティ修正と重大なバグ修正のみ適用される。コードネーム(bookworm, trixie など)が付与される。本番サーバー、ミッションクリティカル基盤、長期運用システム
Testing(テスト版)将来の Stable 候補となるパッケージが集まる版。ある程度安定しているが、稀に不整合が起こる。先進的なデスクトップ環境、次期バージョンの事前検証
Unstable(不安定版)最新の開発中パッケージが投入される版。常に「sid」というコードネーム固定で呼ばれる。開発者向け、新機能の実験

一般的なサーバーや運用環境では、必ず Stable(安定版) を使用します。

主な用途

  • 高可用性・無停止 Web サーバー / データベースサーバー: OS 起因の不具合や予期せぬ挙動変更が極めて少ないため、長期にわたり安定稼働が求められる本番インフラに最適です。
  • Docker コンテナの軽量かつ高信頼なベースイメージ: 公式の debian:bookworm-slim などは、不要なツールを削ぎ落とした軽量かつ互換性の高いコンテナ基盤として広く愛用されています。
  • 派生ディストリビューションの基礎OS: Ubuntu をはじめ、教育・IoT 向けの Raspberry Pi OS(旧 Raspbian)や、セキュリティ診断用の Kali Linux などの土台となっています。

基本的なコマンド一覧(APT と dpkg)

Debian では、パッケージの形式に .deb を採用しており、高レベルなパッケージマネージャーである apt(Advanced Package Tool)および低レベルツールの dpkg を使用します。

APT コマンド(日常的なパッケージ管理)

日常的な操作は、依存関係を自動解決してくれる apt コマンドで完結します(管理者権限 sudo が必要です)。

# パッケージ一覧(メタデータ)の最新化
sudo apt update

# インストール済み全パッケージを最新の安定版へ更新
sudo apt upgrade -y

# パッケージの検索
apt search nginx

# パッケージの詳細情報の確認
apt show nginx

# パッケージのインストール
sudo apt install -y nginx curl git

# パッケージのアンインストール(設定ファイルは残す)
sudo apt remove nginx

# パッケージの完全削除(設定ファイルも含めて削除)
sudo apt purge nginx

# 不要になった依存パッケージの自動クリーンアップ
sudo apt autoremove -y

# ダウンロードしたパッケージキャッシュの削除
sudo apt clean

dpkg コマンド(ローカルの .deb ファイル操作)

手動でダウンロードした .deb ファイルを直接インストール・検査する際に使用します。

# ローカルの .deb ファイルをインストール
sudo dpkg -i package-name.deb

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

# 特定のパッケージがインストール済みか確認
dpkg -l | grep nginx

# 特定のファイルがどのパッケージに含まれているか調査
dpkg -S /etc/nginx/nginx.conf

メリット・デメリット

メリット

  • 卓越した安定性と信頼性: リリース前に長期間の「コードフリーズ(新機能追加停止)」と徹底的なテストが行われるため、稼働中にクラッシュするリスクが極めて低いです。
  • 圧倒的なパッケージ数とアーキテクチャ対応: 公式リポジトリに数万点以上のパッケージが登録されており、x86_64 のみならず ARM、RISC-V など多様なハードウェア環境を幅広くサポートしています。
  • 軽量かつ堅牢なシステム構成: 余計な常駐プロセスやバックグラウンドサービスが初期状態で無効化されており、最小構成でクリーンなサーバー環境を構築できます。
  • 企業の思惑に左右されない透明性: 商用ベンダーのライセンス変更や方針転換に影響されず、永続的にオープンソースとして利用し続けることができます。

デメリット

  • ソフトウェアのバージョンが古い(保守的): 安定性を最優先するため、Stable 版に収録されているプログラミング言語やミドルウェアのバージョンは、最新版より数世代古いことが一般的です。最新の言語機能やツールを即座に使いたい開発環境には不向きな場合があります。
  • プロプライエタリ(非オープンソース)ドライバの扱い: 完全フリーの哲学に基づいているため、Wi-Fi チップセットや最新 GPU(NVIDIA 等)の非フリードライバをインストールする際、明示的に追加リポジトリ(non-free-firmware)を有効化する手間が発生します。
  • デスクトップ用途では初期設定が必要: Ubuntu などの親切なインストーラーと比べ、日本語入力や各種デスクトップ設定を自力で調整する必要があります。