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

By | 2023年11月19日 , Last update: 2023年12月9日

はじめに

2023年11月7日にFedora 39が登場しました。

そこで、

  • 自宅の1台の物理サーバ、
  • VirtualBox上のゲストOSとして稼働している3個の仮想サーバ、及び
  • さくらインターネットのVPSで稼働している2台のサーバ群

(以上ここまでのサーバ及びサーバ群を総称して「PC群」、PC群に属するサーバを「PC」と書くことにします。)のFedora 36をFedora 39にサクサクとアップグレードすることにしました。

アップグレードの手順としては参考文献[1]の手順におおむねしたがって実行します。

スポンサーリンク

事前作業

Fedora 39へのアップグレードの前にFedora 38を最新の状態にアップデートすることが必要ですが、作業開始前にバックアップを取ります。バックアップ重要です。

バックアップが取得できたら、root partition の空き容量を確認します。

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

 

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

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

[panda@fedora ~]$ uname -a
Linux fedora 6.2.13-300.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Apr 27 01:33:30 UTC 2023 x86_64 GNU/Linux

 

アップグレード前のkernelのバージョンは6.2.13のようです。

Fedora 38の最新の状態への更新

アップデート

アップデートの事前準備ができたら以下のコマンドを実行し、Fedora 38の最新の状態にアップデートします。

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

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


スポンサーリンク

 

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

アップデートの実行中に仮想サーバのうちの1個で brave-browser-1.60.118-1.x86_64 のGPG鍵の検証に失敗しました。

そこで、以下のコマンドを実行して当該パッケージをいったん削除し、上記コマンドを再度実行しました。

$ sudo dnf remove brave-browser

 

再起動

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

$ sudo reboot

 

いつもの後始末

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

kernelのバージョンの確認


スポンサーリンク

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

$ uname -a
Linux fedora 6.5.10-200.fc38.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Nov 2 19:59:55 UTC 2023 x86_64 GNU/Linux

 

Linux kernelのバージョンは6.5になりますね。

Fedora 39へのアップグレード

パッケージのダウンロード

Fedora 38を最新の状態にアップデートできたことが確認できたところで、以下のコマンドを実行します。

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

 

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

$ sudo dnf system-upgrade download --refresh --releasever=39
(中略)
トランザクションの概要
================================================================================
インストール 92 パッケージ
アップグレード 3725 パッケージ
削除 8 パッケージ
ダウングレード 17 パッケージ

ダウンロードサイズの合計: 5.4 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 ocaml-cil ocaml-tplib-tools ocaml-xml-light-devel ocaml-ancient-devel ocaml-xmlm-devel ocaml-tplib ocaml-yojson-devel ocaml-seq-devel ocaml-z3-devel ocaml-seq ocaml-zarith-devel ocaml-mmap ocaml-zed-devel ocaml-migrate-parsetree ocaml-sedlex-devel ocaml-mmap-devel ocaml-zip-devel ocaml-lwt-log ocaml-charinfo-width ocaml-lwt-log-devel ocaml-tplib-devel ocaml-migrate-parsetree-devel ocaml-charinfo-width-devel ocaml-ancient

 

再起動とアップグレード

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

$ sudo dnf system-upgrade reboot

 

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

kernelのバージョンの確認

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

$ 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

 

最新版にアップグレードされたFedora 38のkernelのバージョンが6.5.10でしたが、Fedora 39のkernelのバージョンは6.5.11になっていますね。

再び後始末コーナー

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

アップグレード後の後始末

nuc_led

スポンサーリンク

nuc_ledモジュールはこちらに書いた手直しを行ったものをインストールしました。

この記事を最初に書いた時点(2023年11月)では特に問題はないようです。

Python3

パッケージのインストール

Python3のバージョンが3.12.0になったので、以下のコマンドを実行してWebサイトの運用等に必要なパッケージをインストールします。

$ pip install httplib2
$ pip install pytz
$ pip install google-api-python-client

 

なお、第三倉庫(仮)Python3を使ってグラフを描画していた(TezosのAPIの変更に伴い、近日中に公開終了予定。)ので、以下のパッケージも忘れずにインストールします。

$ sudo pip install httplib2
$ sudo pip install matplotlib
$ sudo pip install pandas
$ sudo pip install seaborn

 

SyntaxWarningへの対応

正規表現を引数に指定する際にraw stringを使用していないと、以下のSyntaxWarningが表示されます。

/home/panda/pandanotekit/sidestory/./dump_articles_list.py:138: SyntaxWarning: invalid escape sequence ‘\.’
print(“* [{0}](https://sidestory.pandanote.info/{1})”.format(f[4],re.sub(‘\.md$’,’.html’,f[0])), end=”)

 

上記の例の場合は'\.md$'r'\.md$'に書き換える(文字列の前に”r”を追加する)修正を実施しました。

Galleon及びsnap

snapdのバージョンは変わりませんでした。

そこで、以下のコマンドを実行したところ、Galleonについても最新版がインストールされていることが確認できました。更新作業は実施されませんでした。

# snap refresh galleon

 

Requests-oauthlib

google-api-python-clientが動かなくなっていたので、以下のコマンドを実行して、Requests-oauthlibをインストールしました。

$ pip install requests-oauthlib

 

WordPress

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

Subversion

なんで今時そんなものを稼働させているのだ、というツッコミは無しの方向でお願いすることにして…

バージョンが1.14.2-21のmod_dav_svnを組み込んだApache httpdを起動しようとすると以下のエラーが発生してApache httpdを起動させることができませんでした。

pandanote.info httpd[19042]: httpd: Syntax error on line 61 of /etc/httpd/conf/httpd.conf: Syntax error on line 2 of /etc/httpd/conf.modules.d/10-subversion.conf: Cannot load modules/mod_authz_svn.so into server: /etc/httpd/modules/mod_authz_svn.so: undefined symbol: dav_svn_get_repos_path2

 

Fedora 39のリリースの直後のバージョンが1.14.2-20だったようなので、以下のコマンドを実行して1.14.2-20へのダウングレードを実施したところ、Apache httpdを起動させることに成功しました。

$ sudo dnf remove mod_dav_svn
$ sudo dnf install mod_dav_svn-1.14.2-20.fc39.x86_64

 

これでいったん様子を見ることにします。

壁紙

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

$ sudo dnf install f38-backgrounds

 

動作確認

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

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

おしゃれな壁紙ですね。

まとめ

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

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

Fedoraも2023年でプロジェクトの開始から20周年になるんですねぇ。時間が経つのは早いものです。

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

実はアップグレード作業は当初の計画では11月下旬に実施予定でした。

しかし、Fedora39のリリース以降、Fedora37からFedora38へのアップグレードの記事へのアクセスが増えていることがわかったことと、アップグレードの作業を実施するための時間が取れそうだったので、予定を繰り上げてアップグレード作業を実施しました。

この記事は以上です。

References / 参考文献

  1. Upgrading Fedora Using DNF System Plugin