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)
前項と同じ要領で、ライブラリをコピーして、通るようになりました。