2009年11月29日日曜日

FreeBSDをアップグレード

 FreeBSD 8.0 がリリースされました。そこで我が家のサーバーをようやくバージョン 6.4 から 7.2 へ引き上げることとしました。

 取り合えずcsupのsupfileの設定を変更してcvsupを実行します。新しいバージョンへ置き換えることからいつもより時間がかかっていました。

 build中に問題が発生しないように/usr/objをディレクトリを綺麗さっぱりと消去してbuildworldから作業を開始しました。

2種類のマシンでworldをbuildする処理時間です。

pentium3 1GHzのマシンで3時間33分の作業時間となりました。
 11102.251u 1055.167s 3:33:02.19 95.1% -1334+1469k 43480+5261io 3429pf+0w

pentium2 530MHzのマシンで8時間15分ぐらいです。
 25318.128u 2794.628s 8:15:44.54 94.5% -606+212k 69681+5128io 34758pf+24w

pentium3 800MHzのマシンで5時間9分ぐらいです。
 16177.483u 1772.411s 5:09:45.76 96.5% 750+-153k 67228+5256io 28690pf+24w

pentium4 2.2GHzのマシン
で1時間53分ぐらいです。
 5776.975u 577.756s 1:53:05.84 93.6% -1080+-1811k 38889+5448io 5038pf+0w


これからじっくりとカーネルをビルドします。


ついでのkernelのbuildも終了しましたので処理時間の報告を。


pentium3 1GHzのマシンで1時間10分の時間となりました。
 3708.510u 313.423s 1:10:51.49 94.6% -4852+2707k 15682+8064io 156pf+0w

pentium2 530MHzのマシンで2時間45分ぐらいです。
 8614.701u 846.911s 2:45:45.34 95.1% 1065+-2012k 26676+8027io 570pf+0w

pentium4 2.2GHzのマシンで0時間30分ぐらいです。
 1527.591u 127.273s 29:52.21 92.3% 5938+2340k 12133+1622io 15pf+0w

pentium3 800MHzのマシンで1時間24分ぐらいです。
 4530.692u 417.570s 1:24:49.60 97.2% -2924+2295k 18384+1590io 310pf+0w

そしてinstallkernelを実行すると" file isn't dynamically-linked "と大量に表示されて驚かされます。バージョン6系から7系へアップグレードする時の通過儀礼らしいです。そしてそのままrebootして再度ログインするとちゃんとカーネルは 7.2 へとアップグレードされていました。

 Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
  The Regents of the University of California. All rights reserved.
 
 FreeBSD 7.2-RELEASE-p4 (GENERIC) #0: Sun Nov 29 17:39:34 JST 2009
 
 Welcome to FreeBSD!

このあとinstallworldを行って、mergemasterを実行します。mergemasterの実行の前に必ず"/etc"をバックアップしておきます。ついつい忘れがちなものです。
 # cd /usr/src
 # make installworld
 # cp -Rp /etc /etc_back
 # mergemaster -Ui ------注1
 # reboot

"portupgrade -af"でインストールしてあるソフトのすべてを再ビルドとインストールする。このときruby関係でトラブルが発生しやすいので、rubyの部分だけ先にビルドしておくことが吉!

再度マシンを立ち上げ直した後、古いライブラリなどを削除しておく。ただし全てのソフトが正常に稼働することを確認しておくことが必要です。これでライブラリを削除してしまうので、アップグレードが完了する前に行うとportupgradeをするとライブラリ不足で悩まされることとなります。
 # cd /usr/src
 # make delete-old ---------注2
 # make delete-old-libs ----注2
 # reboot

再度のマシン立ち上げ直しで無事ログイン出来て、各部の動作に問題なければシステムまわりのアップグレードは終了です。

注1:mergemasterでの問い合わせで一番多いのでは、どれを残してどれをインストールするかです。"-Ui"オプションでは、定型的な変化のものを自動的にインストールしてくれて、判断がつかないものを問いあわせてくれます。本当に必要か不要かの判断ができない場合、"d"を押してインストールしない選択にしましょう。passwordやgroupなどの間違っても新しいファイルをインストールしてはいけないものがインストールされる心配がありません。

注2:問い合わせが半端無く多いです。面倒なので以下の方法で一括して"yes"と返事しましょう。
 # yes | make delete-old
 # yes | make delete-old-libs

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。