はじめに
2024年4月23日にFedora 40が登場しました。
そこで、
- 自宅の1台の物理サーバ、
- VirtualBox上のゲストOSとして稼働している3個の仮想サーバ、及び
- さくらインターネットのVPSで稼働している2台のサーバ群
(以上ここまでのサーバ及びサーバ群を総称して「PC群」、PC群に属するサーバを「PC」と書くことにします。)のFedora 38をFedora 39にサクサクとアップグレードすることにしました。
アップグレードの手順としては参考文献[1]の手順におおむねしたがって実行します。
事前作業
Fedora 40へのアップグレードの前にFedora 39を最新の状態にアップデートすることが必要ですが、作業開始前にバックアップを取ります。
バックアップ重要です。
バックアップが取得できたら、root partition の空き容量を確認します。
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/fedora-root 469G 303G 165G 65% /
インストールされているパッケージの数にもよりますが、10GBくらいの空き容量があればアップグレードできるのではないかと思います(※個人の感想です)。
Linuxのkernelのバージョンを確認します。
Linux fedora 6.5.11-300.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Nov 8 22:37:57 UTC 2023 x86_64 GNU/Linux
アップグレード前のkernelのバージョンは6.5.11のようです。
Fedora 39の最新の状態への更新
アップデート
アップデートの事前準備ができたら以下のコマンドを実行し、Fedora 39の最新の状態にアップデートします。
(中略)
トランザクションの概要
================================================================================
インストール 39 パッケージ
アップグレード 986 パッケージ
削除 5 パッケージ
スキップ 2 パッケージ
スポンサーリンク
ダウンロードサイズの合計: 2.5 G
これでよろしいですか? [y/N]:
(中略)
完了しました!
アップデート時に発生した問題の修正
アップデートの実行中に仮想サーバのうちの1個でMongoDBのGPG鍵の有効期限切れにより、検証に失敗しました。
そこで、以下のコマンドを実行して、MongoDB用の公開鍵を削除後、アップグレードを再度試行しました。
gpg-pubkey-058f8b6b-5ad7aea6 MongoDB 4.2 Release Signing Key
$ sudo rpm -e gpg-pubkey-058f8b6b-5ad7aea6
再起動
アップデートで発生した問題の修正後、以下のコマンドを実行して再起動します。
いつもの後始末
WordPressがインストールされていて、かつnginxとともに使用されている場合には、このページに記載の方法でWordPressがアクセスする可能性のあるファイルのownerをnginxに変更します。
kernelのバージョンの確認
Fedora 39を最新の状態に更新後、以下のコマンドを実行します。
Linux yukemuri 6.8.8-200.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Apr 27 17:42:13 UTC 2024 x86_64 GNU/Linux
Linux kernelのバージョンは6.8になりますね。
Fedora 40へのアップグレード
パッケージのダウンロード
Fedora 39を最新の状態にアップデートできたことが確認できたところで、以下のコマンドを実行します。
メタデータの期限切れの最終確認: 0:04:50 前の 2024年05月04日 13時42分48秒 に実施しました。
パッケージ dnf-plugins-core-4.6.0-1.fc39.noarch は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
以下のコマンドを実行し、Fedora 40へのアップグレードに必要なソフトウェアパッケージのダウンロードを開始します(※以下はダウンロードが成功したときの出力の抜粋です。初回実行時にはパッケージ間の依存性チェックに失敗したため、ダウンロードが開始されませんでした(後述)。また、NVIDIAのドライバは使っていないため、inttfリポジトリはenableにしていません)。
(中略)
トランザクションの概要
================================================================================
インストール 148 パッケージ
アップグレード 3926 パッケージ
削除 5 パッケージ
ダウングレード 2 パッケージ
ダウンロードサイズの合計: 5.6 G
DNF はパッケージのダウンロード、gpgキーのインストール、トランザクションのチェックのみ行います。
これでよろしいですか? [y/N]:
(中略)
完了しました!
/var/lib/dnf/system-upgrade/system-upgrade-transaction.json に保存されているトランザクション。
ダウンロードが完了しました! ‘dnf system-upgrade reboot’ を使用して、アップグレードを開始します。
キャッシュしたメタデータやトランザクションを削除するには、’dnf system-upgrade clean’ を使用します』
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
‘dnf clean packages’ を実行することでキャッシュパッケージを削除できます。
ダウンロード時に発生した問題の修正
上記コマンドの実行中にエラーとなったため、依存性が確認できなかったパッケージを削除します。
再起動とアップグレード
アップグレードに必要なパッケージのダウンロードに成功したら以下のコマンドを実行し、再起動します。
再起動後にアップグレードが実施されます(時間がかかります。手元のPC群では最大で25分程度を要しました)。
kernelのバージョンの確認
アップグレードが完了したら、ログインしてアップグレード後の kernel のバージョンを確認します。
Linux fedora 6.8.8-300.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Sat Apr 27 17:53:31 UTC 2024 x86_64 GNU/Linux
Fedora 40へのアップグレード後のkernelのバージョンは6.8.8になっていますね。
再び後始末コーナー
WordPressがインストールされていて、かつnginxとともに使用されている場合には、このページに記載の方法でWordPressがアクセスする可能性のあるファイルのownerをnginxに変更します。
アップグレード後の後始末
XZ Utils
XZ Utilsには悪意のあるコードが挿入されるという問題が発生した[2]ので、アップグレードによりインストールされたバージョンを確認します。
$ for xz_p in $(type -a xz | awk ‘{print $NF}’ | uniq); do strings “$xz_p” | grep “xz (XZ Utils)” || echo “No match found for $xz_p”; done
xz (XZ Utils) 5.4.6
XZ Utilsのバージョンが5.4.6であれば問題はありません。
nuc_led
nuc_ledモジュールはこちらに書いた手直しを行ったものをインストールしました。
この記事を最初に書いた時点(2024年5月)では特に問題はないようです。
Python3
パッケージのインストール
Python3のバージョンは3.12.0から3.12.3に変更されただけであったので、pipコマンドによるパッケージの更新は実施しませんでした。
Galleon及びsnap
snapdのバージョンは変わりませんでした。
そこで、以下のコマンドを実行したところ、Galleonについても最新版がインストールされていることが確認できました。更新作業は実施されませんでした。
WordPress
WordPressはこの記事を最初に書いた時点ではトラブルは発見されていませんが、データベースの更新を実施しました(下図)。
壁紙
壁紙がインストールされないPCがあるので、以下のコマンドを実行してインストールしました。
動作確認
動作確認を実施し、動作に問題がなさそうであることが確認できました。
Fedora 40の壁紙は↓のような感じになりました。
おしゃれな壁紙ですね。
まとめ
本Webサイトではおよそ半年に一度の恒例のイベントとなりましたFedoraのアップグレードでした。
Fedora 40へのアップグレードは大きな問題が発生することなく完了しました。
とりあえずアップグレードには成功したようですので、しばらくこの状態で使ってみて様子を見ることにします。
この記事は以上です。