Fedora vs Ubuntu比較:あなたに合ったディストロはどれか

Fedora tutorial - IT technology blog
Fedora tutorial - IT technology blog

FedoraとUbuntu:まったく異なる二つの哲学

開発マシンかサーバーにFedoraとUbuntuのどちらを選ぶか迷っているなら、その気持ちはよくわかる。筆者は2018年から2022年までUbuntuを使い、その後Fedoraをメインの開発マシンとして移行してから現在まで2年以上継続して使っている。この2つのディストロの違いは、パッケージマネージャーやロゴだけではなく、設計哲学そのものにある。

Ubuntu(Canonical製)は安定性と使いやすさを重視し、Fedora(Red Hatがスポンサー)は最新技術を優先してできる限りアップストリームに近い状態を保つ。どちらが優れているかは一概に言えない――答えはマシンの用途によって完全に変わる。

直接比較:コアとなる違い

リリースサイクルとパッケージの新しさ

これが最大の違いだ。Fedoraは約6ヶ月ごとに新バージョンをリリースし、13ヶ月間サポートされる(2バージョンがオーバーラップ)。Ubuntuには2つのトラックがある:2年ごとのLTSで5年サポート、そして6ヶ月ごとのnon-LTSだ。

Fedoraを使えば、ほぼ常に最新バージョンのすべてを手に入れられる。Fedora 41はカーネル6.11、GCC 14、Python 3.13を搭載しているが、Ubuntu 24.04 LTSはまだカーネル6.8を使っている。カーネルの新機能をテストしたい、または最新のツールチェーンを使いたい場合、この点ではFedoraが明らかに有利だ。

パッケージマネージャー:DNF vs APT

Ubuntuは.deb形式のAPTを使い、Fedoraは.rpm形式のDNFを使う。構文はかなり異なり、動作も同様だ:

# システムを更新
# Ubuntu/Debian
sudo apt update && sudo apt upgrade

# Fedora/RHEL
sudo dnf upgrade --refresh

# パッケージを検索
sudo apt search nginx          # Ubuntu
sudo dnf search nginx          # Fedora

# パッケージ情報を表示
apt show nginx                 # Ubuntu
dnf info nginx                 # Fedora

DNFは複雑なケース、特にパッケージのダウングレード時においてAPTよりも依存関係を上手く処理する。パッケージリポジトリの規模ではAPTが明らかに優勢だ――Ubuntu universe/multiverseにはFedoraのデフォルトリポジトリにない数万のパッケージがある。

プロプライエタリソフトウェアのインストール

一般的なラップトップやデスクトップでは、UbuntuはマルチメディアコーデックやNVIDIAドライバー、WiFiファームウェアなどがインストール直後からほぼ問題なく動作する。Fedoraはフリーソフトウェアファーストの哲学に基づいており、デフォルトリポジトリにプロプライエタリなファームウェアとコーデックが含まれていない。RPM Fusionを追加する必要がある:

# FedoraでプロプライエタリソフトウェアのためにRPM Fusionを追加
sudo dnf install \
  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
  https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

# その後NVIDIAドライバーをインストール
sudo dnf install akmod-nvidia

Ubuntuでは同様の操作がはるかに簡単だ:

# Ubuntu - NVIDIAドライバーを自動インストール
sudo ubuntu-drivers autoinstall

# またはバージョンを指定
sudo apt install nvidia-driver-535

デフォルトのセキュリティモデル

FedoraはデフォルトでSELinuxをEnforcingモードで有効にしている。UbuntuはAppArmorを使用する。どちらもMAC(Mandatory Access Control)だが、SELinuxのほうがよりきめ細かく、カスタマイズが必要な場面では複雑さも増す。RHEL/Rocky Linuxを本番運用しているチームはすぐにメリットを実感できる――Fedoraの開発環境でSELinuxポリシーを事前にデバッグしておけば、本番サーバーでの予期せぬ問題が大幅に減る。

メリット・デメリット分析:DevOps視点からの実践的考察

Fedora — メリット

  • Cutting-edge packages:Fedoraをメインの開発マシンとして2年使ってきたが、パッケージの更新速度には満足している。systemdの新機能、コンテナランタイム、カーネルの新機能をテストする際、FedoraはUbuntu LTSより丸1年近く先を行く。
  • RHELに最も近い:RHEL、CentOS Stream、Rocky Linuxで本番環境を運用しているなら、Fedoraは最も本番に近い開発環境だ。同じ哲学、同じツールチェーン、同じSELinuxポリシー――「自分の環境では動くのに」という問題が大幅に減る。
  • DockerではなくPodman:FedoraはrootlessかつdaemonlessなPodmanをデフォルトのコンテナランタイムとして推進している。RHEL 9ではPodmanがファーストクラスの存在として扱われており、これがエンタープライズLinuxの将来の方向性だ。
  • 完全なWaylandデフォルト:FedoraのGNOMEはずっと前からWaylandで動作しており、Xorgセッションよりスムーズで安全だ。

Fedora — デメリット

  • 短いライフサイクル:13ヶ月のサポートは多くのケースで不十分だ。dnf system-upgradeはかなり信頼性が高いとはいえ、頻繁にシステムアップグレードが必要になる。
  • 小さいパッケージリポジトリ:すべてのエンタープライズツールが揃っているわけではない。一部のマイナーなパッケージは.debしかなく、対応する.rpmが存在しない場合がある。
  • 新しいハードウェアで不具合が出ることも:新発売のラップトップでは一部のチップセットでWiFiドライバーやサスペンド/レジュームの問題が発生することがある――もっとも、新しいカーネルの採用は長期的にはハードウェアサポートの改善につながる。

Ubuntu — メリット

  • 長期的なLTS安定性:Ubuntu 22.04 LTSは2027年まで、拡張セキュリティサポートは2032年まで提供される。安定性が求められる本番サーバーには明らかな優位点だ。
  • 巨大なコミュニティ:インターネット上のほとんどのチュートリアルにUbuntuの例がある。奇妙なエラーに遭遇しても、たいていすぐに検索で解決策が見つかる。
  • 広く使われているクラウドイメージ:AWS、GCP、Azureはいずれも公式のUbuntu AMI/イメージを提供しており、よく整備されてエンタープライズで広く利用されている。
  • オンボーディングが容易:Linuxに不慣れな新メンバーがチームにいる場合、Ubuntu Desktopははるかに親しみやすい入り口となる。

Ubuntu — デメリット

  • Snap問題:CanonicalはFirefoxや一部のコアパッケージを含めてSnapを積極的に推進している。Snapは明らかに遅い――Snap版Firefoxの初回起動には4〜5秒かかるが、APT版なら1〜2秒で済む。CanonicalがSnap Storeを完全に支配していることに反発する開発者も多い。
  • LTSの古いパッケージ:Ubuntu 22.04 LTSはPython 3.10とGCC 11を採用しているが、FedoraはすでにPython 3.13とGCC 14を搭載している。新しいバージョンを使うにはPPAを追加するかpyenv/asdfを使う必要があることが多い。

どのディストロを選ぶか:クイック決定ガイド

具体的なユースケースに応じて選択しよう:

  • RHEL/CentOSの本番環境を扱う開発者 → Fedora。同じエコシステムで、devと本番のギャップが最も小さい。
  • 長期的な安定性が必要な本番サーバー → Ubuntu LTS。5年サポート、アップグレード頻度が低く、ダウンタイムも少ない。
  • ハードウェア互換性が重要な個人デスクトップ → Ubuntu。特に新しいラップトップやNVIDIAカードを使う場合。
  • Linux初心者でコミュニティサポートが必要な場合 → Ubuntu。ドキュメントが豊富で、日本語の情報も探しやすい。
  • ルートレスコンテナの実行や新しいsystemd機能のテストをしたいDevOps → Fedora。
  • Ansibleを使用し、本番RHELに近い環境でplaybookをテストしたいチーム → Fedora。

インストール後の実際のセットアップ

Fedora — 最初のステップ

# 1. RPM Fusionを追加(free + nonfree)
sudo dnf install \
  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
  https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

# 2. DNFを最適化 — /etc/dnf/dnf.confに追加
echo "max_parallel_downloads=10" | sudo tee -a /etc/dnf/dnf.conf
echo "fastestmirror=True" | sudo tee -a /etc/dnf/dnf.conf

# 3. 開発ツールをインストール
sudo dnf groupinstall "Development Tools" "Development Libraries"

# 4. RPM Fusion追加後にマルチメディアコーデックをインストール
sudo dnf install gstreamer1-plugins-{bad-*,good-*,base} gstreamer1-plugin-openh264

# 5. 全体をアップグレード
sudo dnf upgrade --refresh

Ubuntu — 最初のステップ

# 1. アップデートとアップグレード
sudo apt update && sudo apt full-upgrade

# 2. ビルド必須ツールをインストール
sudo apt install build-essential git curl wget vim

# 3. マルチメディアコーデックをインストール
sudo apt install ubuntu-restricted-extras

# 4. オプション:Snap版Firefoxを削除してネイティブ版を使用
sudo snap remove firefox
sudo add-apt-repository ppa:mozillateam/ppa
echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
' | sudo tee /etc/apt/preferences.d/mozilla-firefox
sudo apt install firefox

パッケージバージョンの確認 — クイック比較

# Fedora 41の場合
python3 --version    # Python 3.13.x
gcc --version        # GCC 14.x
podman --version     # Podman 5.x
kernelversion=$(uname -r); echo $kernelversion  # 6.11.x

# Ubuntu 24.04 LTSの場合
python3 --version    # Python 3.12.x
gcc --version        # GCC 13.x
uname -r             # 6.8.x

実際のところ、どちらか一方を選ぶ必要はない。Ubuntu ServerはLTSサポートのために本番VPSで動かし続けているが、開発用ラップトップはFedora Workstation――この2つは日常のワークフローで何の問題もなく共存できる。最終的な判断はシンプルだ:自分(またはチーム全員)が最も深く理解しているディストロを選べ。深夜2時に本番環境がダウンしているとき、自分が運用しているシステムの基本的なことを検索している暇はない。

Share: