freebsd-update

大人の事情で、port 80 しか空いていなかったので csup が使えず、かつ、特にカーネルに変更を加えてなかったので、freebsd-update を選択。
(ってか、FreeBSD への風当たりが強い中で、無理矢理使っている都合上、簡単に update できる仕組みは押しやすい・・・)

cd /usr/ports/security/freebsd-update
make && make install && make clean
mv /usr/local/etc/freebsd-update.conf.sample /usr/local/etc/freebsd-update.conf
/usr/local/sbin/freebsd-update fetch
/usr/local/sbin/freebsd-update install
reboot

引数について

引数 cron を使うと、fetch を行い、patch が存在していれば root ユーザにメールでお知らせしてくれる。
(install を行うか否かは、メール受信後に検討する)


引数 rollback を使うと、適用した patch を削除し、一つ前の状態に戻る。
(連続して実行する事で、前の状態を遡れる)

注意点について

以下、csup を使っていても言える事だが・・・


静的なライブラリが更新された場合
そのライブラリを利用するコマンド等は脆弱性が残ったままとなるので
コンパイルしなおす必要がある。
よって、fetch の時点で、何が更新されているか把握しておく事。
(.so とか更新されると、動かなくなるコマンドとかあるかも)


また、カーネルモジュールが更新された場合
いろいろ面倒なので、reboot しちゃった方が楽。
(どうしても止められない場合は、kldstat -v > 使用サービス停止 > kldunload > kldload > 使用サービス起動 の手順で)

追記(2007/02/06)

freebsd-update は、csup と共に FreeBSD 6.2 から標準なので、ports から入れる必要なし。