freebsd-update from 7.0 to 7.12009年02月26日 13時56分02秒

既に、FreeBSD 7.1-RELEASE が出て二ヵ月ぐらい経つが、freebsd-update で更新してみた。実験環境用に作った 7.0-RELEASE 環境を使った。

リリースアナウンスメントにも書かれている通りで、行程自体は少ない。


$ freebsd-update upgrade -r 7.1-RELEASE
$ freebsd-update install
$ shutdown -r now
$ freebsd-update install
$ shutdown -r now

以下のは実際に行なった時の出力になる。ただし更新されるファイル名を全て出すと、数千行をかるく越えるので ... で省略した。いれたまま何も触っていない素の環境なので、設定に関わる更新はものすごく簡単に終わっている。


$ freebsd-update upgrade -r 7.1-RELEASE
Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching public key from update1.FreeBSD.org... done.
Fetching metadata signature for 7.0-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic world/base world/dict world/doc world/games world/info
world/manpages

The following components of FreeBSD do not seem to be installed:
src/base src/bin src/cddl src/compat src/contrib src/crypto src/etc
src/games src/gnu src/include src/krb5 src/lib src/libexec src/release
src/rescue src/sbin src/secure src/share src/sys src/tools src/ubin
src/usbin world/catpages world/proflibs

Does this look reasonable (y/n)? y

Fetching metadata signature for 7.1-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 7.0-RELEASE for merging... done.
Preparing to download files... done.
Fetching 11584 patches.....10....20....30....40....50....60....70....80....90...
.100....110....120....130....140....150....160....170....180....190....200....21
0....220....230....240....250....260....270....280....290....300....310....320..
..330....340....350....360....370....380....390....400....410....420....430....4
...
0....11260....11270....11280....11290....11300....11310....11320....11330....113
40....11350....11360....11370....11380....11390....11400....11410....11420....11
430....11440....11450....11460....11470....11480....11490....11500....11510....1
1520....11530....11540....11550....11560....11570....11580.. done.
Applying patches... done.
Fetching 1193 files... done.
Attempting to automatically merge changes in files... done.

The following changes, which occurred between FreeBSD 7.0-RELEASE and
FreeBSD 7.1-RELEASE have been merged into /etc/master.passwd:
--- current version
+++ new version
@@ -1,6 +1,6 @@
-# $FreeBSD: src/etc/master.passwd,v 1.40 2005/06/06 20:19:56 brooks Exp $
+# $FreeBSD: src/etc/master.passwd,v 1.40.18.1 2008/11/25 02:59:29 kensmith Exp 
$
 #
 root:$1$kP4JK3hU$ovxAgD8IQ9tkj41pr7u8q1:0:0::0:0:Charlie &:/root:/bin/csh
 toor:*:0:0::0:0:Bourne-again Superuser:/root:
 daemon:*:1:1::0:0:Owner of many system processes:/root:/usr/sbin/nologin
 operator:*:2:5::0:0:System &:/:/usr/sbin/nologin
Does this look reasonable (y/n)? y

The following files will be removed as part of updating to 7.1-RELEASE-p3:
/etc/rc.d/kernel
/usr/include/netgraph/atm/ng_atmpif.h
/usr/sbin/pkg_check
/usr/sbin/pkg_sign
/usr/share/doc/de_DE.ISO8859-1/books/handbook/portsnap.html
...
/usr/share/doc/nl_NL.ISO8859-1/books/handbook/mac-examplesandbox.html

The following files will be added as part of updating to 7.1-RELEASE-p3:
/boot/gptboot
/boot/kernel/cmx.ko
/boot/kernel/cmx.ko.symbols
/boot/kernel/cxgb_t3fw.ko
...
/boot/kernel/uslcom.ko
/boot/kernel/uslcom.ko.symbols
/boot/pmbr
/etc/ddb.conf
/etc/rc.d/ddb
/etc/rc.d/rfcomm_pppd_server
/lib/libctf.so.1
/lib/libdtrace.so.1
/sbin/ddb
/usr/bin/cpuset
...
/usr/share/man/man4/textdump.4.gz
/usr/share/man/man4/uslcom.4.gz

The following files will be updated as part of updating to 7.1-RELEASE-p3:
/.cshrc
/.profile
/COPYRIGHT
/bin/[
/bin/cat
/bin/chflags
...
/bin/unlink
/bin/uuidgen
/boot/beastie.4th
/boot/boot
/boot/boot0
/boot/boot0sio
/boot/boot2
/boot/defaults/loader.conf
/boot/device.hints
/boot/frames.4th
/boot/kernel/3dfx.ko
...
/etc/rc.d/random
/etc/rc.d/rarpd
/etc/rc.d/resolv
...
/etc/sysctl.conf
/etc/syslog.conf
/etc/ttys
/lib/geom/geom_cache.so
/lib/geom/geom_concat.so
...
/rescue/unlink
/rescue/vi
/rescue/whoami
/rescue/zcat
/root/.cshrc
/root/.k5login
/root/.login
/root/.profile
/sbin/adjkerntz
/sbin/atacontrol
...
/sbin/zfs
/sbin/zpool
/usr/bin/CC
/usr/bin/Mail
/usr/bin/addftinfo
...
/usr/share/zoneinfo/zone.tab
/var/named/etc/namedb/master/empty.db
/var/named/etc/namedb/master/localhost-forward.db
/var/named/etc/namedb/master/localhost-reverse.db
/var/named/etc/namedb/named.conf
/var/named/etc/namedb/named.root
/var/yp/Makefile.dist
$ freebsd-update install
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
これで一旦再起動。以下に続く。
$ /usr/sbin/freebsd-update install
Installing updates... done.
再起動の前と後を合わせると pid が二順するくらいのプロセスが生成された様だった。大量のプロセスを生成するので qemu での実験は途中で諦め、AMD64 X2 2GHz でおよそ三十分掛かった。

実は、freebsd-update は処理効率の悪い部分が幾つかある。次のリリースが出るまでに、そこらへんが修正されれば、かなり速くなるのだが。