freebsd-update - 13.5 RELEASE → 14.2 RELEASE - 実機バージョンアップ


クラウディア 


1. 概要
2. パッチをあてる
3. GENERIC boot を用意しておく
4. バージョンアップ
5. 再起動後
6. 後処理
7. さらに

1. 概要

 本ページは、下記のサイトを参考にさせていただきました。
Ubuntu22 に TeraTerm でログインできない
 本記事を書いているのが、2025年4月19日です。  実機で、「FreeBSD 13.5 RELEASE」のマシンがあります。  これは、データベースを本運用していないので、バックアップはほとんど必要ない。  実機なので、「ports」も、ほぼ最新です。  正確に言うと。

$ portversion -v | grep '<'
[Reading data from pkg(8) ... - 412 packages found - done]
glib-2.82.4_1,2             <  needs updating (port has 2.84.1,2)
 という状況にあるのですが、これは事情があって、最新にできていません。  それについては、「メンテナンス・トラブルシュート - pkg・ports - glib」をご参照ください。  メジャーバージョンのアップグレードするのは。  「FreeBSD 12.3 RELEASE」を「FreeBSD 13.1 RELEASE」にアップグレードしたとき依頼かな?  それが、2022年のことになるので、足掛け3年ぶりのこと、久しぶりで、緊張します。  前ページに、仮想環境の状況を書いていますので、よほどのことがなければ割愛します。

2. パッチをあてる

 現時点で

$ uname -a
FreeBSD ns.sing.ne.jp 13.5-RELEASE FreeBSD 13.5-RELEASE releng/13.5-n259162-882b9f3f2218 GENERIC amd64
 パッチをあてておきます。

freebsd-update fetch

Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 13.5-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

No updates needed to update system to 13.5-RELEASE-p1.
 コマンド実行時が、2025年4月19日で、「FreeBSD 13.5 RELEASE」のリリースが、2025年3月11日のせいか。  現時点で、パッチは存在していないようです。

3. GENERIC boot を用意しておく

 現在、実機は「GENERIC」のまま使用しているので、この手順は、このマシンでは行いません。  もし手順を知りたい方は、前の方のページに書いてありますので、ご参照ください。

4. バージョンアップ

 バージョンアップ。

freebsd-update -r 14.2-RELEASE upgrade
 ここもメッセージややりとりは伏せておきます。  実際にどう行うかは、これも前の方のページに書いてありますので、ご参照ください。  非力なマシンでは、ここで、数時間かかります。  インストール。

/usr/sbin/freebsd-update install
 再起動。

shutdown -r now

5. 再起動後

 再起動後、ログイン時点で、メッセージに。

FreeBSD 14.2-RELEASE-p1 GENERIC
 と出力されています。  再度。

/usr/sbin/freebsd-update install
 サーバプログラムを実行しているまま、上記を行うと、長い時間がかかります。。  サーバプログラムを止めていれば、クライアントに迷惑をかけるかもしれませんが、更新時間は減るかもしれません。  ログが、下記のように出力されました。

Installing updates...Removing conflicting directory ///usr/src/sys/contrib/openzfs/cmd/arc_summary
Removing conflicting directory ///usr/src/sys/contrib/openzfs/cmd/zvol_wait

Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 920.
Performing sanity check on sshd configuration.
Starting sshd.
Scanning /usr/share/certs/untrusted for certificates...
Scanning /usr/share/certs/trusted for certificates...
Scanning /usr/local/share/certs for certificates...

Completing this upgrade requires removing old shared object files.
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run
'freebsd-update [options] install' again to finish installing updates.
 ここは、前ページ同様。

pkg bootstrap -f

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]:
 yEnter で答えます。

Bootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:14:amd64/quarterly, please wait...
Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done
Installing pkg-2.1.0...
package pkg is already installed, forced install
Extracting pkg-2.1.0: 100%
 「pkg bootstrap」後に

git -C /usr/ports pull
portsdb -Fu
portversion -v | grep '<'

[Reading data from pkg(8) ... - 412 packages found - done]
glib-2.82.4_1,2             <  needs updating (port has 2.84.1,2)
py311-acme-3.1.0,1          <  needs updating (port has 3.2.0,1)
py311-certbot-3.1.0,1       <  needs updating (port has 3.2.0,1)
py311-cryptography-42.0.8_8,1  <  needs updating (port has 44.0.1,1)
py311-openssl-24.1.0_1,1    <  needs updating (port has 25.0.0,1)
 いくつか更新が、発生しているので、「glib」は冒頭の件で除いて、他のものは、アップグレードします。  アップグレード後。

/usr/sbin/freebsd-update install

Installing updates...rmdir: ///var/db/portsnap: Directory not empty
rmdir: ///usr/src/sys/contrib/openzfs/cmd/zvol_wait: Not a directory
rmdir: ///usr/src/sys/contrib/openzfs/cmd/arc_summary: Not a directory
 done.
 終わったようです。  確認してみます。

$ uname -a
FreeBSD ns.sing.ne.jp 14.2-RELEASE-p1 FreeBSD 14.2-RELEASE-p1 GENERIC amd64
 と無事、アップグレードできたようです。

6. 後処理

 一度、再起動してみました。  再起動後、「vim」を試してみましたが、動作しました。  仮想環境でやったような、ライブラリの問題は、起きていませんでした。  なんで、仮想環境では、ああなったのか・・・不明です。  ただ、これは、別の原因と思われますが、なぜか「Windows」端末から「Tera Term」ログインしようとすると、エラーになります。  他の「FreeBSD」のマシンからはログインできます。  「Audentification」エラーとのことで、キーを確認しましたが、ログインできるマシンと比べても同じなのです。  同じキーで、同じ「Windows」マシンから、コマンドプロンプトで同じ、キーファイルを使ってもログインできます。  ん~なんでだろう?  と、参考サイトにたどり着いて、納得。  古いマシンで、認証アルゴリズムに「rsa」を使用しています。  応急処置で。

vi /etc/ssh/sshd_config
 下記の行を加え。

PubkeyAcceptedAlgorithms=+ssh-rsa
 再起動。

service sshd restart
 その後、鍵ファイルは、作成しなおしました。  そのあたりの手順については、「FreeBSD - メンテナンス・トラブルシュート - sshd・ssh・sftp・ftp」をご参照ください。

7. さらに

 前項で、ライブラリの問題は発生していないと書きましたが。  サーバアプリケーションは、正常に動作しているし、「vim」も支障なく起動できたのですが・・・。  「portupgrade」で、発生しました。

$ portupgrade -rR py311-maturin

[Reading data from pkg(8) ... - 428 packages found - done]
[Gathering depends for devel/py-maturin .................................................................................................. done]
[Exclude up-to-date packages ............................ done]
--->  Upgrading 'py311-maturin-1.8.2_1' to 'py311-maturin-1.8.3' (devel/py-maturin)
--->  Building '/usr/ports/devel/py-maturin'
===>  Cleaning for py311-maturin-1.8.3
===>  License APACHE20 MIT accepted by the user
===>   py311-maturin-1.8.3 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by py311-maturin-1.8.3 for building
===>  Extracting for py311-maturin-1.8.3
=> SHA256 Checksum OK for maturin-1.8.3.tar.gz.
=> SHA256 Checksum OK for rust/crates/adler2-2.0.0.crate.
=> SHA256 Checksum OK for rust/crates/ahash-0.8.11.crate.

・・・	略	・・・

=> SHA256 Checksum OK for rust/crates/zerovec-derive-0.10.3.crate.
=> SHA256 Checksum OK for rust/crates/zip-2.2.3.crate.
=> SHA256 Checksum OK for rust/crates/zopfli-0.8.1.crate.
===>  Moving crates to /usr/ports/devel/py-maturin/work-py311/maturin-1.8.3/cargo-crates
===>  Patching for py311-maturin-1.8.3
===>  Applying FreeBSD patches for py311-maturin-1.8.3 from /usr/ports/devel/py-maturin/files
/usr/bin/sed -i.bak 's|%%PYTHON_VER%%|3.11|' /usr/ports/devel/py-maturin/work-py311/maturin-1.8.3/maturin/__init__.py
===>   py311-maturin-1.8.3 depends on package: py311-setuptools>0 - found
===>   py311-maturin-1.8.3 depends on package: py311-setuptools-rust>=1.4.0 - found
===>   py311-maturin-1.8.3 depends on package: py311-wheel>=0.36.2 - found
===>   py311-maturin-1.8.3 depends on package: rust>=1.86.0 - found
===>   py311-maturin-1.8.3 depends on package: pkgconf>=1.3.0_1 - found
===>   py311-maturin-1.8.3 depends on file: /usr/local/bin/python3.11 - found
===>   py311-maturin-1.8.3 depends on package: py311-build>=0 - found
===>   py311-maturin-1.8.3 depends on package: py311-installer>=0 - found
===>  Configuring for py311-maturin-1.8.3
===>   Additional optimization to port applied
===>   Cargo config:
[source.cargo]
directory = '/usr/ports/devel/py-maturin/work-py311/maturin-1.8.3/cargo-crates'
[source.crates-io]
replace-with = 'cargo'
===>   Updating Cargo.lock
ld-elf.so.1: Shared object "libssl.so.111" not found, required by "cargo"
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/py-maturin
egrep: empty (sub)expression
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20250422-86633-dsox4n env UPGRADE_TOOL=portupgrade UPGRADE_PORT=py311-maturin-1.8.2_1 UPGRADE_PORT_VER=1.8.2_1 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
 前項と同じ要領で、ライブラリをコピーして、通るようになりました。

ハイスピードプラン損保との違い神戸養蜂場JETBOY