freebsd-update を使って、セキュリティfix をする

昔からの FreeBSD ユーザーであれば、インストール直後にやる作業といえばカーネルの再構築。そう思っていた時代が私にもありました。ですが、最近の環境では、特にカリカリにチューニングしたりする機会は減り、カーネルの再構築をやることもなくなりました。ですが、さすがにセキュリティの問題が発覚した際には、対応しなければいけません。ソースを csup で拾ってきて、make world するだけですが、非力なマシンでは時間もかかりますし、いちいちコンパイルするのは面倒です。

そこで、最近のオススメは freebsd-update です。

詳しくは man freebsd-update するなり、ぐぐるなりしてもらえばいいのですが、簡単にまとめると
# freebsd-update fetch
# freebsd-update install
で終了です。

これで終わりではあまりにもアレなのでもうちょっと詳しく。
freebsd-update ではリリースをまたいだ更新も可能です。
たとえば、 6.3 から 7.0 へアップデートする際には、
# freebsd-update -r 7.0-RELEASE upgrade
で、6.3から7.0の差分のコードを取得してきて、/etc 以下のファイルの更新や、削除されるファイルの表示などが行われます。
そして、一度目の
#freebsd-update install
で新たなカーネルのインストールが行われます。ここで指示にしたがって再起動して、二度目の
#freebsd-update install
で、ユーザーランドの更新が行われます。
ここで要注意なのですが、さらに freebsd-update install すると、6.3のライブラリが自動で削除されてしまうので、6.3のころにインストールしたパッケージが軒並み動かなくなっていまいます。そこで、まずパッケージの更新を行っておくとよいでしょう。私の環境では pkg_replace を使っていますので、
# pkg_replace -va -m "BATCH=yes"
で、全てのインストール済みのパッケージを更新します。
その後、
#freebsd-update install
して古いライブラリを削除して再起動すれば終了です。

最後に注意点ですが、上記のとおりやって失敗したとしても当方では一切関知致しません。テスト環境などで試してみて、問題がないことを確認してから本番環境で試すようにしてください。