pkgng
- pkgng - Modernising FreeBSD package management
FreeBSD Portsチームは次世代のパッケージシステムとしてpkgngの開発を進めています。現在のパッケージ
(Packages) は、 Ports Collectionによってビルドされインストールされたソフトウェアをtarballにまとめたものです。必要最小限のメタデータだけを保持しています。シンプルな反面、 現在主流のLinux系パッケージ管理システムと比較て、 機能が貧弱で不完全という問題があります。 pkgngはこれを解決しようという取り組みで、
より多くのメタデータを保持させ、 ローカルのバックエンドデータベースにSQLiteを導入、 より完全性の高い依存性計算の実現や簡単なインストール・ アップグレード作業を実現することを目指しています。10-CURRENTにはすでにpkgngのコマンドであるpkg(1)が導入されています。たとえば、 pkgng経由でインストールされたパッケージを自動的にすべてアップグレードするには次のように作業します。 最近はJailとの連携機能も導入され、
次のように特定のJail環境を指定して、 Jail環境内のパッケージをアップデートするといった作業が簡単に実施できるようになっています。 この機能を利用すると、
たとえばメニーコアのホストサーバで多数のJail環境を提供しているようなケース、 たとえばホスティングサービスを提供しているようなケースですが、 こうった場合でどれかひとつのJail環境でアプリケーションのアップグレードと動作チェックを実施し、 問題がなければほかのJail環境に対して個別にアップグレードを実施するといったような作業を簡単に実施できます。 現在、
2万3,600を超えるソフトウェアがPorts Collectionに登録されていますが、 うち、 pkgngへの自動変換が可能なものは2万2,100を超えるとされています。だいたい93%ほどがそのままpkgngでも利用できることになります。 今後の作業としては9-STABLEへpkgngのマージ、
Capsicumの適用、 サブパッケージの提供、 マルチABIパッケージの提供などが挙げられていました。 pkgngの提供が開催されても、
しばらくはPackagesと両方提供されるものと見られます。また、 Ports CollectionからインストールすればPBIを使ったパッケージのインストールやアップデートも実施できるようになっています。これでFreeBSDは3つのパッケージ管理システムを持つことになります。どの方式にもそれぞれに特徴があり、 適材適所で使われることになるのではないかと思います。