FreeBSD 7.1へようこそ

第1回 7.1-RELEASEの世界へ

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

7.1-RELEASEにアップグレードしよう

それでは早速7.1-RELEASEにアップグレードしてみることにしよう。筆者が用意した環境は,前作執筆時にインストールしたFreeBSD 7.0-RELEASEである(ということは,10ヵ月もの間アップデートをさぼっていたということだが,ここでは気にしない⁠⁠。freebsd-upgradeという仕組みを使えば,簡単にリリース間の移動(アップグレード)が可能なので大変便利である。

ネットワークにつながったFreeBSDマシンにログインして,freebsd-updateを実行する。手順が煩雑そうだが実は,聞かれる質問にはyと答えつづけていればよい

# freebsd-update -r 7.1-RELEASE upgrade

update.FreeBSD.orgというサイトとそのミラーをみつけて,自動的にアップデートが開始される。

Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching public key from update2.FreeBSD.org... done.
Fetching metadata signature for 7.0-RELEASE from update2.FreeBSD.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... 

今回インストールするマシンには,ディストリビューション丸ごとは入れていなかったので,無い部分がありますよと聞かれている。単純にyと答える。

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

The following components of FreeBSD do not seem to be installed:
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/tools src/ubin src/usbin
world/catpages

Does this look reasonable (y/n)? y

アップグレードに必要なファイルのダウンロードがはじまる。10ヵ月の開発の成果でナント,17815個のファイルをダウンロードするのだそうだ。筆者が実験したところ,fletsの光ブロードバンド回線でも優に2時間半はかかるので,急いでいるときには行わないのが身のためである。

Fetching metadata signature for 7.1-RELEASE from update2.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 17815 patches.....10....20....30....40...(省略).17780....17790....17800....17810.. done.
Applying patches... done.

パッチ適用で終わったかと思いきや,そして新たに1649個ものファイルダウンロードがはじまる。ここで筆者は手がすべって,Ctrl-Cで作業を止めてしまったのだが,もう一度

# freebsd-update -r 7.1-RELEASE upgrade

と入力することで,無事アップグレードを再開することができた。

次に,/etc以下の設定ファイルの更新が始まる。大抵の環境では/etc/hostsファイルを書きかえていると思うが,その場合,変更に問題がないかどうか,手動で変更を求められる。Enterを押すとviエディタが起動するので編集する─といっても大抵の場合,ZZ(大文字のZ2回)で抜けるだけでよい。

Fetching 1649 files... done.
Attempting to automatically merge changes in files... done.

The following file could not be merged automatically: /etc/hosts
Press Enter to edit this file in vi and resolve the conflicts
manually...

同じ要領で,設定ファイルを更新するかどうか聞いてくるが,基本的には

Does this look reasonable (y/n)? 

に対してyと答えるだけでよい。変更するファイルのリストが出るので,スペースバーを押しつづけるか,qでmoreから抜けて準備終了である。

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
(省略)

この状態ではまだ「更新予約」が行なわれただけで,実際に更新されていない。

# freebsd-update -r 7.1-RELEASE install

としてカーネルの更新を行う。

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

言われるままに再起動して,もう一度インストールコマンドを実行する。

# shutdown -r now

(再起動を待って,rootでログイン)

# freebsd-update install

筆者の環境で20分ほど待った後,あっけなく終了である。

Installing updates... done.

再起動してメッセージを見ると,めでたく7.1-RELEASEにアップグレード成功である。ちなみに実体は7.1-RELEASE-p3になっていた。つい昨年までは,/etcのバックアップをとって,インストーラをたちあげて,どこを消すか気をつけて,…と細心の注意を払って作業していたことを思うと,拍子抜けするほどのお気楽さである。

# uname -a
FreeBSD mitamachine 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan  1 14:37:25 UTC 2009     root@logan.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

おわりに

アップデートに意外と時間を取られ,気がつくと夜が明けてしまっていた。というのも,freebsd-updateのデータファイルは/var/db/freebsd-update以下に蓄積されるのだが,なんとトータル459メガバイト!CD-ROM1枚に迫るだけのファイルをダウンロードしていたのだった。

これは10ヵ月にわたる開発の結果で,FreeBSDボランティアの開発力に素直に驚嘆すると同時に,おそらくまめにアップデートを繰り返していればこんなに時間をかけることもなかっただろうと思うと,⁠仕事は溜めない」のが一番だと思う今日この頃,〆切に遅れてばかりの自分を見るようで,反省しきりである。それではまた来週。

著者プロフィール

三田吉郎(みたよしお)

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