なぜクリーンインストールではなくアップグレードを選ぶのか?
Fedoraは、新しいバージョンがリリースされるスピードが非常に速いことで知られています。およそ6ヶ月ごとに新しいバージョンが登場します。私は2年以上、Fedoraをメインの開発機として使用してきました。最大のメリットは、Kernel、GCC、Python、Goなどが常に最新バージョンに素早くアップデートされる点です。
しかし、Fedoraの各バージョンのサポート期間は約13ヶ月しかありません。つまり、セキュリティパッチを受け取り続けるためには、少なくとも年に一度はアップグレードを行う必要があります。多くのDevOpsエンジニアは、依存関係のエラーや重要な設定の消失を恐れて、OSのアップグレードを敬遠しがちです。
実際には、dnf-plugin-system-upgradeというツールがこの作業を非常にスムーズに処理してくれます。環境の再構築に2時間かける代わりに、直接アップグレードすることで、Dockerコンテナ、Nginxの設定、SSHキーなどをそのまま保持できます。正しい手順に従えば、エラーが発生する確率はほぼゼロです。
トラブルを避けるための3つの準備ステップ
コマンドを入力する前に、アップグレードを円滑に進めるための3つのポイントを確認しましょう:
- データのバックアップ: DNFは非常に安定していますが、油断は禁物です。
/etc、/var/www、/homeなどの重要なフォルダを外付けハードディスクやクラウドにコピーしておきましょう。 - 空き容量の確保: アップグレードでは通常2.5GB〜5GBのパッケージをダウンロードします。ルートパーティション(
/)に少なくとも10GBの空き容量があることを確認してください。 - 外部リポジトリの一時停止: サードパーティのリポジトリ(RPM Fusion以外)は、依存関係の計算中にバージョンの競合を引き起こしやすくなります。
システムアップグレードツールのインストール
メジャーバージョン間(例:40から41)のアップグレードには、DNFの専用プラグインが必要です。このプラグインがパッケージのダウンロードと安全な再起動環境の設定を管理します。
まず、現在のシステムを最新の状態にします:
sudo dnf upgrade --refresh
アップデート完了後、新しいKernelがある場合は一度再起動することをお勧めします。次に、以下のコマンドでアップグレードプラグインをインストールします:
sudo dnf install dnf-plugin-system-upgrade
新バージョンのパッケージをダウンロードする
これはシステムがデータを準備する段階です。例えば、Fedora 40からFedora 41に上げたい場合は、以下のコマンドを実行します:
sudo dnf system-upgrade download --releasever=41
ここで、--releasever=41はターゲットとなるバージョン番号です。DNFがメタデータのチェックを開始し、ダウンロードが必要な数千のパッケージリストを表示します。
依存関係の競合を解決する
もし「Problem: package X requires Y…」というエラーが出た場合、原因は通常、外部リポジトリの古いパッケージにあります。--allowerasingフラグを追加することで、DNFが競合するパッケージを自動的に削除するようにできます:
sudo dnf system-upgrade download --releasever=41 --allowerasing
注意: 削除されるパッケージのリストをよく確認してください。重要なIDEやデータベースエンジンが削除されようとしている場合は、作業を止めて手動で確認してください。
アップグレードの実行と再起動
「Download complete!」と表示されたら、すべての作業を保存し、実行中のアプリケーションを閉じてください。実際のインストールプロセスを開始するために、最後のコマンドを入力します:
sudo dnf system-upgrade reboot
PCが再起動し、最小限の環境に入ります。画面にFedoraのロゴとプログレスバーが表示されます。このプロセスは、SSDের速度やソフトウェアの数によりますが、通常20分から45分ほどかかります。この間、絶対に電源を切ったり強制終了したりしないでください。
アップグレード後の確認と最適化
新しいデスクトップ画面が表示されたら、ターミナルを開いてバージョンを確認しましょう:
cat /etc/fedora-release
不要なファイルの掃除
アップグレード後のシステムには、古いパッケージ(obsolete)が残り、ディスク容量を圧迫することがあります。以下のクリーンアップコマンドを実行してください:
# サポートが終了したパッケージを削除
sudo dnf autoremove
# インデックスエラーを防ぐためにRPMデータベースを再構築
sudo rpm --rebuilddb
# ダウンロードキャッシュをクリア
sudo dnf clean all
エラーログの確認
起動が遅かったり、NginxやDockerサービスが正常に動作しない場合は、すぐにシステムログを確認してください:
journalctl -p 3 -xb
このコマンドは、重大なエラー(Priority 3)のみを表示します。通常は、各サービスの設定ファイルの構文を新しいバージョンの標準に合わせて更新するだけで解決します。
DNFによるFedoraのアップグレードは、手順をしっかり把握していれば非常に簡単です。このガイドが、皆さんの作業環境のアップグレードに自信を持つ助けになれば幸いです。もしアップグレード中に珍しいエラーに遭遇したら、下のコメント欄で教えてください!
