FreeBSD 7.0 へようこそ
第3回 freebsd-updateで楽々リリースサーフィン
すでにFreeBSDを導入している読者にとっては,インストールCD-ROMを用いたアップグレードや,ソースからコンパイルしてアップグレードするやり方は釈迦に説法であろう。一方最近のFreeBSDには,ちょうどWindows Updateのように,バイナリで簡単にアップデートできるfreebsd-updateという仕組みが整備されている。
この仕組みは本来,同じリリース内でセキュリティパッチレベルを上げるため(たとえば08年3月4日にFreeBSD 6.2-RELEASEでupdateを使ったところ,パッチレベル11にまで自動で上げてくれた)に用いられるものだが,6.3-RELEASEからは,「upgrade」オプションで異なるリリースに上がることが可能になった。6.3-RELEASEから7.0-RELEASEは,この新機能が本領を発揮するはじめての例,しかもメジャー番号の更新ということなので,「うまくいった」報告を出しておくことは有益なので報告する。
freebsd-updateによる7.0-RELEASEへのアップグレード
すでにFreeBSDをインストールしている読者ならば,FreeBSDの更新は頻繁に行っていることであろう。ただ,筆者も時間がないといった言い訳で,しばしば次のような手抜きアップグレードを行っていた。
- /etc, /boot/loader.conf,/root など,/(ルートパーティション)内で自分が手を加えたファイルを退避
- 古いFreeBSDの上に,CD-ROMから新しいFreeBSDを上書きインストール。その際disklabelのときに全てのパーティションを「M」(Mount point set)キーでもって単にマウントすることにする。
- とはいっても若干気持悪いので,disklabelのときに「T」(toggle newfs)でもって / だけはnewfsしてまっさらにする
- インストールが終わったら,退避しておいた/etcなどの設定ファイルを元に戻す。
- 戻すファイルの代表的なものは/etc/rc.conf,/etc/group(viを立ち上げてマージ),/etc/master.passwd (vipw中で手動でマージ),/etc/ssh/*key* (host keyがかわると面倒),/etc/printcap,/etc/resolv.conf,/boot/loader.confなど
- パッケージは,暇があるときは全部自分で作り直す(俺的パッケージを作るための,RUN_DEPENDSをやたら指定した「Mitapkgs」というportsを個人的に持ってメンテナンスしている)が,暇が無いときはそのまま。
- 古いCライブラリ(たとえばFreeBSD 6なのに/lib/libc.so.5 =FreeBSD 5のlibc)も,そのまま。
以上のやり方は,簡便に実行できる点が魅力だが,たとえばライブラリにセキュリティの問題があるのに,それと知らずに古いパッケージとライブラリを使い続ける,といった類の脆弱性の危険がある。したがって,アップグレードのあるべき姿は,以下のような要求を満たすものであろう。
- 更新が必要なファイルは更新してくれ
- 自分で設定したファイルはそのまま,うまいことマージしてくれ
- 古いライブラリは消してくれること
FreeBSD 6.3-RELEASEでのfreebsd-updateは,上記3要求をすべてかなえてくれる便利なツールである。以下のようなアップグレードの手順を踏む場合
- 必要な差分を入手
- カーネルを入れ替え
- ライブラリ等新ファイルを追加
- (手動)パッケージの入れかえ
- 旧ライブラリファイルの削除
このうち1,2,3,5をfreebsd-updateが担当してくれる。
[手順0]6.3-RELEASEを用意する
今回記事を執筆するにあたり,FreeBSD 6.3-RELEASEが入っていたディスクと,6.2-RELEASEが入っていたディスクの2種類で試してみた。6.2-RELEASE版のfreebsd-updateには「upgrade」コマンドがなく,実行してもパッチレベルが上がるだけで,アップグレードはできなかった。そこで(いささか乱暴だが)先ほど紹介した「手抜きアップグレード」で6.3-RELEASEを上書きインストールするとfreebsd-updateで7.0-RELEASEにアップグレードできるようになった。
FreeBSD 7.0 へようこそ
- 第5回 ストレージ新時代-GEOM journaling,ZFS on FreeBSD
- 第4回 7.0-RELEASE SMPへの道
- 第3回 freebsd-updateで楽々リリースサーフィン
- 第2回 7.0-RELEASEでディスク丸ごとバックアップ
- 第1回 7.0の「使いどき」はいつ?


