Linux ディストリビューションの比較
linux システムにはさまざまなディストリビューションがあり、それぞれ異なる組織が自分たちのディストリビューションを保守しています。今回のノートでは、私が理解している範囲でいくつかのディストリビューションの違いを記録します。
なぜわざわざ一本の記事にする価値があるのか。それは、ディストリビューション選びというものが、インストールしたその瞬間に、その後数年間の運用体験を決めてしまうことが多いからです。どのパッケージマネージャーを使うのか、リポジトリのソフトウェアはどれくらい新しいのか、ローリングアップデートできるのかメジャーバージョン移行しかできないのか、問題が起きたときコミュニティのドキュメントは調べやすいのか。これらの違いは普段はあまり意識されませんが、本番環境でのトラブルシューティングやシステムアップグレードの際に一気に噴出します。だからこそ、主要なディストリビューションの特徴を先に整理しておくほうが、問題が起きてからシステムを乗り換えるよりずっと割に合うのです。
まず背景を少し補足します。Linux ディストリビューションは本質的にどれも「Linux カーネル + パッケージ管理システム + 一式のデフォルトソフトウェアと設定」の組み合わせです。カーネルは同じ上流を共有しており、本当に差がつくのはパッケージ管理エコシステム(Debian 系は apt/dpkg、Red Hat 系は yum/dnf/rpm、SUSE 系は zypper/rpm)とリリース戦略——安定性を追求してソフトウェアバージョンを数年間凍結するのか、それとも新機能を追求して頻繁に更新するのか——です。この二点を理解すれば、以下の各ディストリビューションのトレードオフは理解しやすくなります。
Debian
1、Debian は現在、私が最も好んで使っているディストリビューションです。バージョン 10 は非常に安定しており、システムのリソース使用量もとても小さい。現在、私が本番環境で選んでいるものです。
Debian の安定性はそのリリースの仕組みに由来します。パッケージはまず unstable、testing という二つの段階で長期間磨き上げられてから、ようやく stable ブランチに入ります。stable は一度リリースされるとソフトウェアバージョンはほぼ凍結され、セキュリティパッチと重要な修正だけを受け取ります。代償としてリポジトリのバージョンは古めですが、その引き換えに、サーバー上で「更新したらシステムが壊れた」という事態はめったに起きません。加えてデフォルトインストールが非常にミニマルで、余計なサービスをプリインストールしないため、メモリもディスクも使用量が控えめです。これが私が本番環境に Debian を据えている主な理由です。
Debian -- The Universal Operating System
CentOS
2、CentOS は Red Hat の商用有償オペレーティングシステムから分岐したバージョンで、商用 OS を無料にしたものです。機能も安定性も現在なかなか優れていますが、どこかしらで機能が削られているのは間違いないでしょう。何しろ向こうには有償のシステムがあるのですから。さらに CentOS はすでに保守を終了しており、元の作者である Gregory Kurtzer は新プロジェクトとして Rocky Linux オペレーティングシステムを立ち上げています。
この歴史を少し詳しく説明します。CentOS はもともと RHEL(Red Hat Enterprise Linux)のオープンソースコードを再コンパイルし、商標を取り除いて無料で公開したものでした。そのため RHEL と高い互換性を実現でき、多くの企業が無料の RHEL として使っていました。その後 Red Hat は戦略を転換し、CentOS を CentOS Stream へと方向転換させました。「RHEL の下流の安定した複製」から「RHEL の上流のローリングプレビュー」への変化であり、安定性を求める本番ユーザーにとっては別物になったも同然です。そこでコミュニティには Rocky Linux、AlmaLinux といった後継プロジェクトが登場し、RHEL の下流互換という従来路線を引き継いでいます。既存のビジネスが CentOS エコシステムに強く依存している場合、これらの代替品への移行は Debian 系への乗り換えより通常はコストが低くなります。
Ubuntu
3、Ubuntu は Debian をベースに開発されたオペレーティングシステムで、機能はより豊富で強力ですが、安定性とシステムリソースの使用量では Debian にはるかに及びません。
Ubuntu は Canonical 社が主導しており、Debian をベースにより積極的な選択をしています。ソフトウェアバージョンはより新しく、ドライバーサポートはより充実し、デスクトップ体験はすぐに使える状態で提供され、さらに固定周期の LTS(長期サポート)版もあります。得意とする場面はデスクトップと開発マシンです。新しいハードウェアへの対応が速く、コミュニティのチュートリアルが多く、問題に遭遇してもほぼ必ず既存の答えが検索で見つかります。しかしプリインストールされるコンポーネントやデフォルトのサービスが多いぶん、同じスペックのマシンでは Debian よりも多くのリソースを消費します。いくつかのサービスを動かすだけのサーバーにとっては、この「豊富さ」はむしろ負担です。
Enterprise Open Source and Linux | Ubuntu
openSUSE
4、openSUSE はドイツで最も人気のあるオペレーティングシステムだと言われており、その安定性はかなり優れているはずです。機会があれば Debian との違いを試してみるつもりです。
openSUSE の背後には SUSE 社がいて、Red Hat と似た「商用版 + コミュニティ版」路線を歩んでいます。特筆すべき特徴が二つあります。一つは YaST というグラフィカルなシステム管理ツールで、ネットワーク、パーティション、サービス設定を一箇所に集約しており、設定ファイルを手書きしたくない人にとても優しい作りです。もう一つは Leap(固定バージョン、商用版 SLE に対応)と Tumbleweed(ローリングアップデート)の二本立てで、安定を取るか最新を試すかをニーズに応じて選べます。中国で使っている人は比較的少なく、中国語の資料は Debian/Ubuntu ほど見つけやすくないので、この点は選定時に考慮に入れるべきです。
SUSE - Open Source Solutions for Enterprise Servers & Cloud
ハマりどころと注意点
1)保守が終了したシステムを本番環境で使わないこと。セキュリティアップデートのないディストリビューションでは、新たに公開される脆弱性の一つ一つに無防備でさらされるしかありません。CentOS の教訓はまさに目の前にあります。選定前にバージョンのサポート期間を必ず確認しましょう。
2)系統をまたぐディストリビューション移行のコストは高いです。apt と yum/dnf の違いはコマンド名だけではなく、パッケージの命名、分割方法、設定ファイルのパスまで異なり、スクリプトも運用の習慣もそれに合わせて変える必要があります。同じ系統内での移行(CentOS から Rocky など)はずっとスムーズです。
3)「ソフトウェアが新しい」と「システムが安定している」は多くの場合、相反します。Debian stable で新しいバージョンのソフトウェアを使いたいなら、まず公式の backports リポジトリかコンテナ方式を検討しましょう。サードパーティのリポジトリを混ぜて強引にアップグレードするのは、依存関係を壊しやすいのでできるだけ避けるべきです。
まとめ
これらのディストリビューションに絶対的な優劣はなく、あるのは場面との適合だけです。安定性と低リソース使用を求めるサーバーには、私は Debian を選びます。RHEL エコシステムに強く依存しているなら、Rocky Linux のような CentOS の後継を検討するとよいでしょう。デスクトップと開発マシンには、Ubuntu のすぐ使える体験のほうが楽です。openSUSE は今後実際に触って比較するのを楽しみにしています。一つの系統を選び、そのパッケージ管理とリリースのリズムを熟知するほうが、頻繁にシステムを乗り換えるよりずっと価値があります。
COMMENTS