Fedora 39から40へのアップグレード

By | 2024年5月5日

はじめに

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 の空き容量を確認します。

[panda@fedora ~]$ df -h /
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/fedora-root 469G 303G 165G 65% /

 

インストールされているパッケージの数にもよりますが、10GBくらいの空き容量があればアップグレードできるのではないかと思います(※個人の感想です)。

Linuxのkernelのバージョンを確認します。

[panda@fedora ~]$ uname -a
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の最新の状態にアップデートします。

$ sudo dnf --refresh upgrade
(中略)
トランザクションの概要
================================================================================
インストール 39 パッケージ
アップグレード 986 パッケージ
削除 5 パッケージ
スキップ 2 パッケージ


スポンサーリンク

ダウンロードサイズの合計: 2.5 G
これでよろしいですか? [y/N]:
(中略)
完了しました!

 

アップデート時に発生した問題の修正

アップデートの実行中に仮想サーバのうちの1個でMongoDBのGPG鍵の有効期限切れにより、検証に失敗しました。

そこで、以下のコマンドを実行して、MongoDB用の公開鍵を削除後、アップグレードを再度試行しました。

$ sudo rpm -q gpg-pubkey --qf ‘%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n’ | grep mongodb
gpg-pubkey-058f8b6b-5ad7aea6 MongoDB 4.2 Release Signing Key public key
$ sudo rpm -e gpg-pubkey-058f8b6b-5ad7aea6

 

再起動

アップデートで発生した問題の修正後、以下のコマンドを実行して再起動します。

$ sudo reboot

スポンサーリンク

 

いつもの後始末

WordPressがインストールされていて、かつnginxとともに使用されている場合には、このページに記載の方法でWordPressがアクセスする可能性のあるファイルのownerをnginxに変更します。

kernelのバージョンの確認

Fedora 39を最新の状態に更新後、以下のコマンドを実行します。

$ uname -a
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を最新の状態にアップデートできたことが確認できたところで、以下のコマンドを実行します。

$ sudo dnf install dnf-plugin-system-upgrade
メタデータの期限切れの最終確認: 0:04:50 前の 2024年05月04日 13時42分48秒 に実施しました。
パッケージ dnf-plugins-core-4.6.0-1.fc39.noarch は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!

 


スポンサーリンク

以下のコマンドを実行し、Fedora 40へのアップグレードに必要なソフトウェアパッケージのダウンロードを開始します(※以下はダウンロードが成功したときの出力の抜粋です。初回実行時にはパッケージ間の依存性チェックに失敗したため、ダウンロードが開始されませんでした(後述)。また、NVIDIAのドライバは使っていないため、inttfリポジトリはenableにしていません)。

$ sudo dnf system-upgrade download --refresh --releasever=40
(中略)
トランザクションの概要
================================================================================
インストール 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’ を実行することでキャッシュパッケージを削除できます。

 

ダウンロード時に発生した問題の修正

上記コマンドの実行中にエラーとなったため、依存性が確認できなかったパッケージを削除します。

$ dnf remove jgit

 

再起動とアップグレード

アップグレードに必要なパッケージのダウンロードに成功したら以下のコマンドを実行し、再起動します。

$ sudo dnf system-upgrade reboot

 

再起動後にアップグレードが実施されます(時間がかかります。手元のPC群では最大で25分程度を要しました)。

kernelのバージョンの確認

アップグレードが完了したら、ログインしてアップグレード後の kernel のバージョンを確認します。

$ uname -a
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]ので、アップグレードによりインストールされたバージョンを確認します。

$ export LANG=C
$ 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についても最新版がインストールされていることが確認できました。更新作業は実施されませんでした。

# snap refresh galleon

 

WordPress

WordPressはこの記事を最初に書いた時点ではトラブルは発見されていませんが、データベースの更新を実施しました(下図)。

壁紙

壁紙がインストールされないPCがあるので、以下のコマンドを実行してインストールしました。

$ sudo dnf install f40-backgrounds

 

動作確認

動作確認を実施し、動作に問題がなさそうであることが確認できました。

Fedora 40の壁紙は↓のような感じになりました。

おしゃれな壁紙ですね。

まとめ

本Webサイトではおよそ半年に一度の恒例のイベントとなりましたFedoraのアップグレードでした。

Fedora 40へのアップグレードは大きな問題が発生することなく完了しました。

とりあえずアップグレードには成功したようですので、しばらくこの状態で使ってみて様子を見ることにします。
この記事は以上です。

References / 参考文献

  1. Upgrading Fedora Using DNF System Plugin
  2. XZ Utilsに悪意のあるコードが挿入された問題(CVE-2024-3094)について