2010Q3 FreeBSD Status Reportが公開されました。報告されている中から興味深い話題を紹介します。
- Binary Package Patch Infrastructure - pkg_
patch Google Summer of Code 2010の一環としてpkg_
patch(1)の開発が実施されました。pkg_ patch(1)自身の開発はすでに完了しています。現在はpkg_ patch(1)をFreeBSDにマージするために必要になるほかの関連ツールの変更検討が進められています。pkg_ patch(1)がどういったツールであるかはIvanVoras/ pkg_ に詳しくまとまっています。patch - FreeBSD Wiki FreeBSDのパッケージはPorts Collectionから生成されます。パッケージはインストールしたファイルとインストール場所、
依存関係などのメタデータを含んでいます。このパッケージから必要になるものをシステムにインストールしたり、 逆にアンインストールしたりするためのコマンドが、 pkg_からはじまる一連のコマンドです。 これまでのパッケージ管理では、
アプリケーションやライブラリのアップグレードは、 一旦対象となるパッケージをアンインストールしてから、 新しいバージョンをインストールするという手順を踏んでいました。 pkg_
patch(1)はそうではなく、 インストールされている既存のバイナリそのものを直接変更することでアップグレードを実施しようという取り組みです。FreeBSDはバイナリとバイナリの差分を取るbsdiff(1)と、 バイナリパッチをバイナリに適用するbspatch(1)を持っています。pkg_ patch(1)はこの機能を活用してインストールされているバイナリを直接アップグレードしようという試みです。 FreeBSDはカーネルおよびデフォルトのユーザランドツールについてはFreeBSD Updateでバイナリアップデート可能です。pkg_
patch(1)はこれをパッケージからインストールしたサードパーティアプリケーションに対しても適用可能にするもので、 ベースシステムにマージされたあとは、 カーネル、 システム、 サードパーティアプリケーションも含めてバイナリアップグレードが実施できるようになります。サーバ管理やアップグレード作業の負荷の軽減や自動化を補助する機能として注目されます。