2012年8月23日木曜日

FreeBSD 8.3 へアップグレード

以前から FreeBSD 8.2 から FreeBSD 8.3 へアップグレードしたいと思っていました。なかなか機会に恵まれず、延び延びとなっていました。

今日は一念発起して、このアップグレードを行ってみましました。

以下はいつものように、私の備忘録を兼ねての記述です。

手順などはいつも通りなのですが、cvsup の supfile を修正することから始めました。
*default release=cvs tag=RELENG_8_3

これで csup (cvsup) を使ってソースファイルの入れ替えを行います。
# csup -g -L 2 standard-supfile

ソースファイルが入れ替わったところで、いよいよビルドに取りかかります。
# cd /usr/src
# make buildworld
# make buildkernel KERNCONF=MYKERNEL

world と kernel を一気にビルドするときにはコマンドをアンパサンドを使って連結しておきます。
# make buildworld && make buildkernel KERNCONF=MYKERNEL

私のサーバー環境でのビルド時間は次の通りでした。
make buildworld の時間 1時間27分29秒
make buildkernel の時間 26分04秒

なおカーネル用の設定ファイル(MYKERNEL)は、FreeBSD 8.2 のものをそのまま流用しました。マイナーアップグレードなどで大きな違いはないと思ったためです。本当は新しい FreeBSD 8.3 の GENERIC から書き直す方がよいのですが。

world と kernel のビルドが完了したら、インストールです。
# make installkernel
# make installworld

インストールが終了したら再起動させて動作確認をしてみます。
# reboot

問題が無さそうでしたら /etc ディレクトリにある各種の設定ファイルを mergemaster を使って更新します。
/etc の設定ファイルの更新の前に必ずバックアップを録っておきましょう。
# cp -Rp /etc /etc_backup

次に mergemaster を使っての設定ファイルの更新です。いつも次のコマンド・オプションを使って更新しておきます。更新のコツとしては、更新するかどうか?の問い合わせがあったときには、確信を持って新しい設定ファイルに置き換えてもよいもの意外は、更新拒否の「d」キーを選択して、古い設定ファイルを残すようにしましょう。これで mergemaster の後に FreeBSD のシステムが起動しなくなったり、変な動作や、ログイン出来ないなどの被害に遭う確率が下がるはずです。
# mergamaster Ui

mergemaster が終了したところで、再びマシンを再起動させて動作に問題がないか確認をします。
# reboot

これでシステム部分の更新が終了しました。これで一応動作していますが、私は念のために各種の ports でインストールしたソフトウェアの更新も行っておきました。
せっかくのアップグレードした機会に、依存関係などが更新につぐ更新のために壊れかけているかもしない ports ソフトウェアも綺麗に再ビルドしておきました。
コマンドは困ったときの非常手段としても使用される(笑)あの portupgrade のコマンドです。
# portupgrade -af

portupgrade でインストール済みの全ての ports ソフトウェアの強制再インストールを行いました。私の環境では概ね5時間ほどの時間が必要でした。

もちろん portupgrade が終了しましたら、システムの再起動を行います。
# reboot

これで動作に問題がなけれな、アップグレードは終了となります。

0 件のコメント:

コメントを投稿

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