FreeBSD Daily Topics

2011年5月13日注目】FreeBSDにPBI登場、最新パッケージ管理システム

heads-up

PBI on FreeBSD

PC-BSDのパッケージ管理システムであるPBIがFreeBSDに導入されました。Ports Collectionに「ports-mgmt/pbi-manager」として用意されています。PBIはPorts Collectionをベースにして半自動的に生成されるパッケージおよびその管理ツールで、これまでPC-BSDにおけるパッケージ管理システムとして活用されてきました。Packagesと異なり、PBIはそのアプリケーションに必要になるライブラリなども含めてパッケージングを実施するため、ほかのライブラリやソフトウェアへの依存度が低く、単体でのアップグレードやロールバックが簡単に実施できるという特徴があります。

PBIが有益なパッケージ管理システムであることは開発者の間で認知されていましたが、従来のPBIは管理ツールがQt/KDEに依存しており、コマンドラインからの利用ができませんでした。また重複するライブラリを複数保持することになるためディスク消費量が多いことや、アップグレード時にバイナリをすべてダウンロードする必要があるなど、通信帯域の消費が大きいといった問題もありました。

今回FreeBSDに導入されたPBIは、こうした問題を改善した新しいPBIです。pkg_*系管理ツールとよく似たインターフェースを備えたコマンドラインツールが開発され基盤の管理ツールとして導入されたほか、ハードリンクやバイナリ差分を活用してディスク消費および通信帯域の消費が抑えられています。FreeBSDにおけるバイナリベースでのアプリケーションインストールおよび管理機能として代表的な位置づけを獲得していくことになると見られます。

PBI Managerをインストールすると次の管理コマンドがインストールされます。

  • pbid(8) - 共有ファイルラリのマージや古いライブラリの排除などを実施する管理デーモン
  • pbi_add(1)、pbi_addrepo(8)、pbi_autobuild(8)、pbi_browser(1)、pbi_create(1)、pbi_delete(1)、pbi_deleterepo(8)、pbi_icon(1)、pbi_indextool(1)、pbi_info(1)、pbi_listrepo(1)、pbi_makepatch(8)、pbi_makeport(8)、pbi_makerepo(8)、pbi_metatool(1)、pbi_update(1)、pbi_update_hashdir(1)、pbi_patch(1)

pbid(8)デーモンを動作させる必要があります。/etc/rc.confに次の行を追加します。

pbid_enable="YES"

システムを再起動するとpbid(8)が自動的に起動するようになります。pbid(8)を手動で起動するには次のようにservice(8)コマンドを実行します。

service pbid start

PBIは次のディレクトリをアプリケーションのインストール場所およびメタデータ(リポジトリ)の保存場所として利用します。

  • /usr/pbi/ - アプリケーションはこのディレクトリに個別にインストールされます
  • /usr/pbi/firefox-amd64/ - (例)PBI経由でインストールされたFirefox
  • /usr/pbi/thunderbird-amd64/ - (例)PBI経由でインストールされたThunderbird
  • /var/db/pbi/ - リポジトリ

PBIに用意されているパッケージはpbi_browser(1)コマンドで検索できます。今のところ9-CURRENTで利用できるPBIパッケージは導入されたばかりで極少数(Eric、Firefox、KBackup、Kasablanca、LibreOffice、OpenOffice、Pidgin、QDevelop、QGit、Thunderbird、Wireshark、Xarchiver、grsync、ntop)です。各OSのバージョンおよびアーキテクチャに対して提供されるPBIパッケージは徐々に増えることになります。インストールしたPBIアプリケーションの情報はpbi_info(1)コマンドでチェックできます。このあたりの操作はpkg_*系コマンドと同じです。

たとえばFirefoxをインストールする場合、次のように作業します。インストール前にPorts CollectionまたはPackages経由でインストールしたFirefoxは削除しておいてください。pbi_browser(1)コマンドで対象を調査するとインストールコマンドが表示されるので、そのコマンドを入力してインストールを実施します。PBIパッケージをダウンロードしてインストールが実施されます。

% pbi_browser -s firefox  ←アプリ情報チェック
Using RepoID: 001
Searching for: firefox
------------------------------------
Application: Firefox
Version: 4.0_1
Created: 20110419 085715
RootInstall: NO
Arch: amd64
Author: Mozilla
URL: http://www.mozilla.org
License: GPL
Type: Graphical
Keywords: Firefox,Browser,Web,Mozilla,www
Icon: /var/db/pbi/repo-icons/dd3920955c2fcf9bcc66b20dc0d89354-Firefox.png
Description: Firefox is an award winning, free, open-source web browser for many platforms and is based on the Mozilla codebase. It is small, fast and easy to use, and offers many advanced features.

To install this PBI:
# pbi_add --rArch amd64 --repo 001 -r Firefox  ←インストールコマンドが表示されている
% 
% pbi_add --rArch amd64 --repo 001 -r Firefox  ←同じコマンドを入力

ソフトウェアやライブラリはすべて「/usr/pbi/アプリ名-アーキテクチャ名/」にインストールされますが、/usr/local/bin/以下に実行コマンドへのシンボリックリンクが作成されるため、環境変数PATHにはとくに変更を加えることなく利用できます。インストールしたアプリケーションのアップデートはpbi_update(1)コマンドで実施します。

基本的にリリースに対してPorts Collectionから生成されるPackagesと異なり、PBIはパッケージでありながら、常に最新版を追いやすいという特徴があります。反面、まだ提供されているアプリケーションの数が少ないので、次のように使い分けることになります。

  • ビルドに時間がかかるビッグアプリケーションはPBIでインストールする
  • ビルド時にオプションを指定する必要があるソフトウェアはPorts Collectionからインストールする
  • それ以外はPorts Collectionからインストールする

PBIとPorts Collectionをうまく使い分けることで、手元でビルドすることによるカスタマイズという恩恵を受けながらも、ビルドにかかる時間を最小限に抑えつつ最新のアプリケーションをキープするといったことが実現しやすくなります。

おすすめ記事

記事・ニュース一覧