ひとりごと

新しい記事:[2476]  古い記事:[2474] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2009/05/13 (水)

・ freebsd-update

FreeBSD6の時代にさかのぼりますが、freebsd-update というバイナリレベルで更新できる命令が標準で搭載されました。FreeBSDではセキュリティ更新においても make world するのが一般的であり、他の方法に比べると時間はかかるものの、容易でかつ信頼できる手段です。

freebsd-update が登場した当初は「使用できる条件はCDなどからバイナリインストールした場合に限る」となっていたような気がするのですが、現在はそこまで条件が厳しくなくて「make world している場合でもRELEASE版の場合はOK」みたいです。ただし、GENERICカーネル以外を使っていたり /etc/make.conf に何か書かれていることが前提のシステムだと更新できても期待通りに動かない可能性があります。おうちのサーバは sendmail がらみで色々書いてるのでダメですが、会社のルーターに使ってるFreeBSDはほとんどすっぴん状態なので make world よりは時間もCPUパワーも使わないバイナリ更新はなかなか興味深いところです。

ということで、使い方。実はfreebsd-updateの正しい手順というのはマニュアルやハンドブックには書かれていません。が、概ね下記のようになるでしょう。

  1. # freebsd-update fetch (または freebsd-update cron)
  2. # freebsd-update install

FreeBSDの場合、セキュリティ更新の度に 'FreeBSD 7.1-RELEASE-p数字' みたいに数字のところが増えていきますが、この更新だけなら上記で特に問い合わせも無く完了します。過去の例からすると /etc 以下は変更されないので安全に更新できて、念のために最後に再起動すれば作業終了です。

さらに freebsd-update ではメジャーバージョン間のアップグレードにも対応していて、たとえば7.2に上げるには announce によると

  1. # freebsd-update upgrade -r 7.2-RELEASE
  2. # freebsd-update install
  3. # shutdown -r now
  4. # freebsd-update install
  5. # shutdown -r now

という手順になるのだそうです。手順自体は簡素なのですが、実際にやってみると結構時間はかかります。実行中にいろいろ質問してくるので、make world のように寝てる間に作業させるわけにもいきません。とりわけ気をつけなければならない事としては、FreeBSD6.x から 7.x に上げる場合は二回目の freebsd-update install で古いライブラリが削除されるので、portsで入れたプログラムが動かなくなるのだそうです。VPNで接続した先のマシンをアップグレードする場合は気をつけないとVPNソフトが動かないために再起動した時点で終ってるというまぬけな事態になりかねません(笑)。

その他、気づいたこと

実績面では make world に及びませんが、試しに使った限りでは(特にしょぼいPCで) make world よりも早く終りますから ちょっとした更新には良いんじゃないかなーと思いました。

[つっこみ]

新しい記事:[2476]  古い記事:[2474] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)