FreeBSD 5.3-RELEASEに入れ替え


使ってるサーバのうちの1台が5.2.1-RELASEだったのだが、5.3-RELEASEに入れ替えることにした。
大幅な変更があるということで、5系は5.2RまではCURRENTブランチとして扱われていたのだが、5.3RからはSTABLEブランチになったということで、5.3Rが使いたいのである。
・マルチスレッド周りの強化
・BIND9に変更
などなど様々な変更が加えられているのも移行への理由である。
ということで、僕の5.2.1Rマシンでのcvsupを使っての5.3Rへの移行手順をメモ。
1. ソースの更新

*default host=cvsup2.jp.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_5_3
*default delete use-rel-suffix
*default compress
src-all

と書いたファイル(例:hoge.cvsup)を用意して、
# cvsup hoge.dvsup
としてRELANG_5_3のソースツリーに手元のマシンのソースを更新してやる。
(SUPHOSTはStatistics for CVSup serversを参考にすると良さげ)
/etc/make.confに

CPUTYPE=    i686
CFLAGS=     -O -pipe
COPTFLAGS=  -O -pipe

と書いてやると良いかも。(CPUTYPEなどはもちろんマシンと相談してください)
2. baseのコンパイル
kernelなどをコンパイルするより前に、baseのバイナリを作ってやります。
ディスクの空き容量を確認して
# cd /usr/src
# make buildworld >& buildworld.log &
と、してコンパイルを開始。(進捗を見たければ、tail -f buildworldlog とすれば大丈夫)
3. kernelのコンパイル
GENERICカーネルを使っていれば、特に気をつかうこともありませんが、自前でkernelをチューニングしている人は、もちろんconfigしてください。
# cd /usr/src
# make buildkernel KERNCONF=GENERIC
4. kernelのインストール
3で作ったkernelをinstallする。
# make installkernel KERNCONF=GENERIC
5. /etc以下のmerge
設定ファイルの書き換え
# mergemaster -siva
# mergemaster -sivr
これは手間です。基本的には編集していないファイルは「i」で上書きしてしまう。
書き換えて使っていたものは「m」でマージモードに入って、左(旧い)と右(新しい)のどちらを残すか「l」「r」で入力。マージモードでうまくいかないことがあるので、注意すべきかと。
6. baseのインストール
kernel以外のバイナリをインストールします。
シングルユーザーモードでリブートして、
# mount /
# mount /usr
# mount /var
としてファイルシステムをマウントしたのちに、
# cd /usr/src
# make installworld
として、インストールしてやってください。
namedがbind9になって、/var/named/etc/namedbに設定ファイルが移るので、
/etc/namedbをrenameしておくべきです。
それが終われば、reboot。
これで完了です。細かいところの手直しはしましょう。
2005.1.1(追記)
参考文献:http://www.freebsd.org/releases/5.3R/migration-guide.html