RaspberryPiのFreeBSDはバイナリアップデートがサポートされていない。 
 パッチが公開されたとき、ソースからビルドしなおすことになるのだけど、今までやってみたことがないので試してみることにした。 
 いわゆるmake world。 
 「 ソースを用いた FreeBSD のアップデート」にあるとおりにやっていく。 
 まずはソースをもってくる。これだけでも大変だった。でもsvnで管理されているから次からは差分アップデートになるはず。 
 次は「make -j4 buildworld」——。 
 延々、コンパイルが走ったあと、落ちる  1。 
 何度も試しあと、ようやく原因がわかる。メモリ不足だった。out of swapとか、なんとか。 
 swapファイルを3Gにしてもだめだったのでそこであきらめた。 
 最終的に「-j」指定なしでなんとか、終了した。 
 次に「make buildkernel」——。 
 落ちる。なんで? 「-j」なしなのに。ディスク容量をチェックしてみたら今までに見たことのない「-1G」という表示。なんじゃ、それ。いずれにしても32GのSDカードではリビルドするのに足りないらしい。「/usr/obj」の下が18Gもあった。 
 無理か。 
 色々、考えてUSDで外付けのハードディスクをマウントする。「/mnt」——そこへ中身を移動して「/usr/src」と「/usr/obj」のシンボリックリンクを張る。ところが、「make buildkernel」は継続できたのに「make installworld」に失敗してしまった。 
 しかたなく、「make buildworld」からリトライ。 
 成功。 
 「make buildkernel」成功。 
 「make installworld」成功。 
 今にしても思えば、「/mnt」にマウントするのではなく、「/usr/obj」にマウントしてもよかった。 
 「/usr/src」は差分アップデート用に残しておきたいので。 
 まぁ、リビルトができることはわかっただけでも収穫。 
 日単位で時間はかかったけど。 
Footnotes:
最初、「-j」なしでやっていたのだけど、あまりにも時間がかかるので「-j4」でやっていた。