FreeBSD 8.4 や 9.2 のメンテナンスサイクルが終了してしまい、FreeBSD 9.3 か10.2 にアップデートしたいと考えるようになってきました。8.4 のまましばらく使い続けることは特に問題ないのですが、上げる場合は複数サーバーを更新しないといけないので、そろそろ更新に備えようと、以前 仮想WordPress用に構築した Virtual PC 環境を使ってテスト中に freebsd-update コマンドがエラーになってしまいました。
root@vwp2:/home/staff # freebsd-update -r 9.3-RELEASE upgrade Looking up update.FreeBSD.org mirrors... none found. Fetching metadata signature for 9.2-RELEASE from update.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 world/base The following components of FreeBSD do not seem to be installed: src/src world/doc world/games Does this look reasonable (y/n)? y Fetching metadata signature for 9.3-RELEASE from update.FreeBSD.org... done. Fetching metadata index... done. Fetching 1 metadata patches. done. Applying metadata patches... done. Fetching 1 metadata files... done. The update metadata is correctly signed, but failed an integrity check. Cowardly refusing to proceed any further.
アップデートコマンドは、過去何度も実施しているので、待っていれば終了と思っていたので、慌てました。
何これ?
検索してみると、FreeBSD のマイナーバージョンが低すぎると発生するそうです。
root@vwp2:/home/staff # uname -a FreeBSD vwp2 9.2-RELEASE FreeBSD 9.2-RELEASE #0 r255898: Fri Sep 27 03:52:52 UTC 2013 root@bake.isc.freebsd.org:/usr/obj/usr/src/sys/GENERIC i386
ということで、対策は、事前に
freebsd-update fetch && freebsd-update install
コマンドで、マイナーバージョンを更新しました。
しかし、再度、同じエラーが発生。なぜ?
freebsd-update コマンド実施中は時間が掛かるので放置していて気がつかなかったのですが、
WARNING: FreeBSD 9.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE. Any security issues discovered after Thu Jan 1 09:00:00 JST 2015 will not have been corrected.
と、サポート終了のメッセージが出ていました。ひょっとして、これが出たがために、freebsd-update fetch がエラーで終了したことになって、install の方が実行されなかったのかも。freebsd-update install を実行したところ、
root@vwp2:/home/staff # freebsd-update install Installing updates...install: ///usr/src/contrib/bind9/lib/isc/counter.c: No such file or directory install: ///usr/src/contrib/bind9/lib/isc/include/isc/counter.h: No such file or directory install: ///usr/src/contrib/tzdata/leap-seconds.list: No such file or directory install: ///usr/src/contrib/tzdata/zone1970.tab: No such file or directory done.
となってパッチが入れられたようなので、install コマンドが実行されていなかった模様です。
このあと、OSをリブートして、再度最初からやり直したところ、
root@vwp2:/home/staff # uname -a FreeBSD vwp2 9.2-RELEASE-p15 FreeBSD 9.2-RELEASE-p15 #0: Mon Nov 3 20:08:52 UTC 2014 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386 root@vwp2:/home/staff # freebsd-update -r 9.3-RELEASE upgrade Looking up update.FreeBSD.org mirrors... none found. Fetching metadata signature for 9.2-RELEASE from update.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. The following components of FreeBSD seem to be installed: kernel/generic world/base The following components of FreeBSD do not seem to be installed: src/src world/doc world/games Does this look reasonable (y/n)? y Fetching metadata signature for 9.3-RELEASE from update.FreeBSD.org... done. Fetching metadata index... done. Inspecting system... done. Fetching files from 9.2-RELEASE for merging... done. Preparing to download files... done. Fetching 10091 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140
と freebsd-update -r upgrade が動作するようになりました。