portsnap2006年11月05日 09時37分09秒

/usr/ports は uzip で固めて読みだし専用にしている。そのため、ports の更新は、必要なソフトウェアをいれるときに、download the gzipped tarball から落としてきて、md-device に書き込んだ後に、mkuzip をやっている。

なお、mkuzip をやる前に、一度だけ portupgrade -na 等を走らせて、index ファイルを取ってきたりしておく。uzip にした後では書き込めないので、index を保存できないためだ。

最近、新しいものを試してみたくなり、ports を調べてみたが、長い間更新されていない事を見つけた。手元での修正が必要になるし、gnome 関連の深い依存関係を持っているので、ports の最新を追いかけることにした。

そこで、portsnap の出番だ。かなり昔から名前だけは、聞いたことはあったが、使ったことは無かった。始めての利用だ。 BSD にくびったけ に詳しく紹介されている。

  • スナップショットの配布のために、より洗練されたデルタ圧縮 (Binary diff) を使用する
  • INDEX/INDEX-5/INDEX-6 ファイルを提供する
あたりが魅力的だ。

初回は、fetch をして、extract すればいいらしい。最初のものを取って来て、展開か。


# portsnap fetch
Looking up portsnap.FreeBSD.org mirrors... using portsnap1.FreeBSD.org
Fetching public key... done.
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Fetching snapshot generated at Fri Nov  3 19:09:10 EST 2006:
8a6b9843b6be9ba8bf087cec2eb700d528d491bf5558ce 36% of 44 MB 225 kBps 02m08s
Extracting snapshot... done.
Verifying snapshot integrity... done.
Fetching snapshot tag... done.
Fetching snapshot metadata... done.
Updating from Fri Nov  3 19:09:10 EST 2006 to Sat Nov  4 00:05:45 EST 2006.
Fetching 4 metadata patches... done.
Applying metadata patches... done.
Fetching 0 metadata files... done.
Fetching 18 patches.....10.... done.
Applying patches... done.
Fetching 0 new ports or files... done.
# portsnap extract

extract が始まった。ずいぶん大量のプロセスを生成するのが印象的だった。extract 自体は速くない。むしろ、遅い部類だ。大量のプロセスを生成しているのが原因だと思われる。

次回からは、


# portsnap fetch
# portsnap update

で更新すれば、差分だけ適応するらしい。

次回