1. 概要
例によって「VirtualBox」上に、「FreeBSD 14.0 RELEASE」のマシンがありますので、これを「FreeBSD 14.1 RELEASE」にアップデートするところからやってみます。
アップデート前のマシンは、いくつかのサーバアプリケーションをインストールしたものです。
2. ports の更新
放置しておいたので、アップデートの発生している、「ports」が山ほどあります。
全部更新しておきます。
とは、いえ、下記のモジュールは、いろいろあって、最新にできなかった。
bind-tools-9.18.20_1 < needs updating (port has 9.18.27_1)
py311-pluggy-1.3.0 < needs updating (port has 1.5.0)
py311-setuptools_scm-6.4.2 < needs updating (port has 8.0.4) (=> 'devel/py-setuptools-scm')
rubygem-rdoc-6.6.2 < needs updating (port has 6.7.0)
システムのアップグレード後に、考える時間があれば、アップグレードしようと思います。
3. パッチをあてる
仮想マシンの現在の状況を見てみます。
$ uname -a
FreeBSD ns.vm.sing.ne.jp 14.0-RELEASE FreeBSD 14.0-RELEASE #0 releng/14.0-n265380-f9716eee8ab4: Fri Nov 10 05:57:23 UTC 2023 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
パッチがあたっていないので、パッチをあてるところから・・・。
以下、「root」ユーザ権限で。
freebsd-update fetch
メッセージは長々と出力されるので割愛します。
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update1.freebsd.org... done.
Fetching metadata signature for 14.0-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 464 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170....180....190....200....210....220....230....240....250....260....270....280....290....300....310....320....330....340....350....360....370....380....390....400....410....420....430....440....450....460.. done.
Applying patches... done.
Fetching 58 files... ....10....20....30....40....50.... done.
The following files will be added as part of updating to
14.0-RELEASE-p7:
/usr/src/contrib/tzdata/checknow.awk
/usr/src/contrib/tzdata/zonenow.tab
・・・ 略 ・・・
/usr/src/contrib/unbound/testdata/iter_nat64_prefix.rpl
/usr/src/contrib/unbound/testdata/iter_nat64_prefix48.rpl
:
Space と q で進めていきます。
プロンプトが返ってきたら。アップデート。
freebsd-update install
メッセージは、これだけ。
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 925.
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...
done.
再起動。
shutdown -r now
更新を確認。
$ uname -a
FreeBSD ns.vm.sing.ne.jp 14.0-RELEASE-p6 FreeBSD 14.0-RELEASE-p6 #0: Tue Mar 26 20:26:20 UTC 2024 root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
「FreeBSD 14.0-RELEASE」から「FreeBSD 14.0-RELEASE-p6」へ変わっています。
4. GENERIC boot を用意しておく
今回、マイナバージョンのアップグレードなので、「kernel」ファイルは必要ないかと思います。
もし必要になったら、以下の手順で用意します。
「.iso」ファイルをダウンロードして、それをマウントするのが手っ取り早い。
カーネルさえあればいいので、「DVD」メディアでなく、「CD」メディアで十分。
ダウンロード。
mkdir -pv /tmp/disk
cd /tmp/disk
curl https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/14.0/FreeBSD-14.0-RELEASE-amd64-disc1.iso --output FreeBSD-14.0-RELEASE-amd64-disc1.iso
5. バージョンアップ
バージョンアップ。
「root」ユーザ権限で。
freebsd-update -r 14.1-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 14.0-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/generic kernel/generic-dbg src/src world/base world/lib32
The following components of FreeBSD do not seem to be installed:
world/base-dbg world/lib32-dbg
Does this look reasonable (y/n)?
yEnter で答えます。
以降、メッセージはなるべく省略して、入力が必要な個所のみ記述します。
The following files will be removed as part of updating to
14.1-RELEASE-p1:
/etc/ssl/certs/f3377b1b.0
/usr/include/c++/v1/__bsd_locale_defaults.h
/usr/include/c++/v1/__bsd_locale_fallbacks.h
・・・ 略 ・・・
/usr/include/c++/v1/experimental/string
/usr/include/c++/v1/experimental/unordered_map
:
Space と q で進めていきます。
マイナーチェンジなので、やることは、少ないはずです。
最後は、下記を出力して、プロンプトが返ってきました。
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".
では、アップグレード。
/usr/sbin/freebsd-update install
Creating snapshot of existing boot environment... done.
Installing updates...
Kernel updates have been installed. Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
ちゅうことで、再起動。
shutdown -r now
6. 再起動後
再起動後にログインしたときのログイン時のメッセージが
FreeBSD 14.1-RELEASE (GENERIC) releng/14.1-n267679-10e31f0946d8
となっております。
「root」ユーザ権限で。
/usr/sbin/freebsd-update install
この下のメッセージの途中は、時間がかかります。
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 921.
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...
rmdir: ///var/db/portsnap: Directory not empty
done.
どうも「/var/db/portsnap」を手動で削除しなければ、ならないような・・・。
メジャーバージョンアップと違って、面倒なことがないように祈ります。
「ports」の更新を確認します。
git -C /usr/ports pull
portsdb -Fu
portversion -v | grep '<'
バージョンアップ前と、変わりありませんでしたが・・・。
「vim」がこけました。
cd /usr/ports/editors/vim
make deinstall clean
make
make install
他に、「service」で動作していない人がいるので、あれこれ。
「sa-spamd」は、下記の手順で起動できました。
sa-update
service sa-spamd start
「webmin」は、「vim」と同じ要領で、インストールしなおして、セットアップからやり直したら、起動できました。
あと、少し、手直しすることはありますが、本番前の練習としては、十分かと思います。