FreeBSD 7.0 へようこそ

第3回 freebsd-updateで楽々リリースサーフィン

この記事を読むのに必要な時間:およそ 5 分

[手順1]差分の入手

まずrootとなり,以下を入力。

# freebsd-update -r 7.0-RELEASE upgrade

すると,自動的に近場のアップグレードサーバを探し,必要な差分を取得してくれる。

Looking up update.FreeBSD.org mirrors... 1 mirrors found.
Fetching metadata signature for 6.3-RELEASE from update1.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 2 metadata files... done.
Inspecting system... done.

カーネルのコンフィグが違ったり,ソースが一部展開されていなかったりすると,⁠それでもいいですか」と親切にも尋ねてくれる。基本的には「y」と答えておいてよいだろう。

WARNING: This system is running a "smp" kernel, which is not a
kernel configuration distributed as part of FreeBSD 7.0-RELEASE.
As part of upgrading to FreeBSD 7.0-RELEASE, this kernel will be
replaced with a "generic" kernel.
Does this look reasonable (y/n)? y
Inspecting system... done.

Fetching files from 6.3-RELEASE for merging... done.
Preparing to download files... done.
Fetching 16721 patches.....10....20....30....40....50....60....70....80....90....100....110..

《途中略》

16710....16720 done.
Applying patches... done.
Fetching 6288 files... done.
Attempting to automatically merge changes in files... done.

次に,6.3-RELEASEから7.0-RELEASEの間に行われた設定ファイル(/etc/)の変更を反映してよいか聞いてくる。

The following changes, which occurred between FreeBSD 6.3-RELEASE and
FreeBSD 7.0-RELEASE have been merged into /etc/group:
--- current version
+++ new version
@@ -1,6 +1,6 @@
-# $FreeBSD: src/etc/group,v 1.32.2.1 2006/03/06 22:23:10 rwatson Exp $
+# $FreeBSD: src/etc/group,v 1.35 2007/06/11 18:36:39 ceri Exp $
 #
 wheel:*:0:root,mita,work00,jeux,work01,work02,work03,work04,work05,work06,work07
 daemon:*:1:
 kmem:*:2:
 sys:*:3:
@@ -9,10 +9,11 @@
 mail:*:6:
 bin:*:7:
 news:*:8:
 man:*:9:
 games:*:13:
+ftp:*:14:
 staff:*:20:
 sshd:*:22:
 smmsp:*:25:
 mailnull:*:26:
 guest:*:31:
Does this look reasonable (y/n)? y
The following changes, which occurred between FreeBSD 6.3-RELEASE and
FreeBSD 7.0-RELEASE have been merged into /etc/nsswitch.conf:
--- current version
+++ new version
@@ -1,7 +1,15 @@
+#
+# nsswitch.conf(5) - name service switch configuration file
+# $FreeBSD: src/etc/nsswitch.conf,v 1.1 2006/05/03 15:14:47 ume Exp $
+#
 group: compat
 group_compat: nis
 hosts: files dns
 networks: files
 passwd: compat
 passwd_compat: nis
 shells: files
+services: compat
+services_compat: nis
+protocols: files
+rpc: files
Does this look reasonable (y/n)? y

アップデートに際して削除される予定のファイル一覧が表示され,終了する。引き続き実際のインストールを行おう。

The following files will be removed as part of updating to 7.0-RELEASE-p0:
/boot/kernel/bridge.ko
/boot/kernel/g_md.ko

《途中略》

/var/named/etc/namedb/named.root
/var/yp/Makefile.dist

[手順2]カーネルの入れ替え

今度は以下を入力

# freebsd-update -r 7.0-RELEASE install

で実際にカーネルの入れ換えが行われる。

Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

と言われるとおり,OSを再起動する。

[手順3]ユーザランドのインストール

再起動で立ち上がった後,再びrootで

# freebsd-update install

としてライブラリ等のインストールを行う。

Installing updates...

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 "/usr/sbin/freebsd-update install"
again to finish installing updates.

一連の作業中,ここで出てきたメッセージは最も重要で,次回installを行った瞬間に古いライブラリは消えてしまい,古いライブラリに依存しているすべてのパッケージが動かなくなってしまう。実際,最初筆者はこのメッセージを無視したせいで,パッケージを新しくするための「portupgrade」コマンドまで動かなくなってしまい,復活に苦労した。言われることには素直に従うものだと反省。

著者プロフィール

三田吉郎(みたよしお)

東京大学 大学院工学系研究科 電気系工学専攻准教授。講義「電気磁気学」「わかる電子回路」やマイクロマシン研究の傍ら,FreeBSDの普及,開発に尽力する。FreeBSD ports committer。国際派を自任し,2007~8年9月までフランス国立情報学研究所(INRIA)招聘教授。共著書に「FreeBSD徹底入門」(翔泳社),「FreeBSD Expert」など。

コメント

  • そうですね

    コピーしそこないました。早速直してもらうように依頼します。
    指摘ありがとうございました。

    Commented : #2  三田 (2008/04/04, 04:39)

  • reebsd-update

    ミススペルのようです。
    # reebsd-update install

    Commented : #1  iyoda (2008/04/01, 14:37)

コメントの記入