FreeBSD Daily Topics

2012年5月21日 次世代パッケージシステムpkgngとJail

この記事を読むのに必要な時間:およそ 1 分

pkgng

pkgng - Modernising FreeBSD package management

FreeBSD Portsチームは次世代のパッケージシステムとしてpkgngの開発を進めています。現在のパッケージ(Packages)は,Ports Collectionによってビルドされインストールされたソフトウェアをtarballにまとめたものです。必要最小限のメタデータだけを保持しています。シンプルな反面,現在主流のLinux系パッケージ管理システムと比較て,機能が貧弱で不完全という問題があります。

pkgngはこれを解決しようという取り組みで,より多くのメタデータを保持させ,ローカルのバックエンドデータベースにSQLiteを導入,より完全性の高い依存性計算の実現や簡単なインストール・アップグレード作業を実現することを目指しています。10-CURRENTにはすでにpkgngのコマンドであるpkg(1)が導入されています。たとえば,pkgng経由でインストールされたパッケージを自動的にすべてアップグレードするには次のように作業します。

# pkg update
# pkg upgrade -y

最近はJailとの連携機能も導入され,次のように特定のJail環境を指定して,Jail環境内のパッケージをアップデートするといった作業が簡単に実施できるようになっています。

# pkg -j jailname update
# pkg -j jailname upgrade -y

この機能を利用すると,たとえばメニーコアのホストサーバで多数の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つのパッケージ管理システムを持つことになります。どの方式にもそれぞれに特徴があり,適材適所で使われることになるのではないかと思います。

コメント

コメントの記入