パッケージコマンドが使えない

FreeBSD のメジャーバージョンアップを行った際に運悪く pkg コマンドが使えなくなってしまったら、 代わりに pkg-static コマンドを使いましょう。

以下のように pkg 自身をアップデートすると使えるようになります。

pkg-static upgrade pkg

これは pkg コマンドがリンクしているライブラリ(libc や openssl など)が FreeBSD のメジャーバージョンアップにて削除されてしまった場合に起こります。

例えば FreeBSD の libc が libc.so.6 から libc.so.7 に更新された場合、 libc.so.6 をリンクしている pkg コマンドは使えなくなります。

pkg-static は必要なライブラリを全てスタティックリンクしているため、 このようなことは起こりません。

pkg コマンドがダイナミックリンクされていることには

  1. 使用メモリ量の削減
  2. ライブラリをバグやセキュリティホールで更新する際に pkg コマンドを更新する必要がない

の利点があります。

どちらも一長一短がありますので、必要に応じて使い分けてください。