FreeBSD Daily Topics

2012年7月17日次世代パッケージシステムpkgng、7/25日にCURRENTマージ予定

pkgng

pkgng for CURRENT

pkgが1.0 RC1のフェーズに入りました。以降はバグ修正のみが許可され、7月25日を目処に10-CURRENTにおけるデフォルトのパッケージ管理システムがpkgngに切り替わると報告されています[HEADSUP & CFT] pkg 1.0rc1 and schedule⁠。

現段階でpkgngをデフォルトのパッケージ管理システムとして利用するには/etc/make.confに「WITH_PKGNG=yes」を追加する必要があります。これでPorts Collection側からpkgngをデフォルトのパッケージ管理システムとして扱うようになります。逆に、pkgngがデフォルト化した以降でpkgngに移行したくないという場合には、make.confに「NO_PKGNG」を定義しておけばよいと説明があります。

pkgngは現在のパッケージ管理システムpkg_*が抱える、次の問題を解決するために開発が進められてきました。

  • 手軽なバイナリアップデート機能が存在しない
  • リモートパッケージを検索する機能がない
  • 依存関係/逆依存関係トラッキングの簡単な方法が提供されていない

アプリケーションのインストールや管理にPorts Collectionを使いたくないというケースがあります。たとえば仮想環境でFreeBSDを使っている場合や、数十台/数百台というFreeBSDマシンを管理している場合、性能が低いマシンでFreeBSDを実行している場合、デフォルトのパッケージで十分といった場合などです。pkgngはそういった用途で便利なパッケージ管理システムとなります。

ただし、現在ではひとつ注意が必要です。pkgng - FreeBSD Wiki「KNOWN FAILURES」に掲載されている項目を見てほしいのですが、数個のアプリケーションはpkgngへの移行が完了していません。特にNVIDIAドライバがpkgngに対応していない点に注意する必要があります。

% ll /usr/local/lib/xorg/modules/extensions/ | grep libglx
-rwxr-xr-x  1 root  wheel      932  1月 10  2012 XXX-libglx.la.%%.xorg-server-1.7.7_5,1
-rwxr-xr-x  1 root  wheel   540046  1月 10  2012 XXX-libglx.so.%%.xorg-server-1.7.7_5,1
lrwxr-xr-x  1 root  wheel       11  7月 11 14:08 libglx.so -> libglx.so.1
-r--r--r--  1 root  wheel  8442408  7月 11 14:08 libglx.so.1
% ll /usr/local/lib | grep libGL                          
-rwxr-xr-x   1 root  wheel    692620  1月 10  2012 XXX-libGL.so.1.%%.libGL-7.6.1
lrwxr-xr-x   1 root  wheel        10  7月 11 14:08 libGL.so -> libGL.so.1
-r--r--r--   1 root  wheel   1008080  7月 11 14:08 libGL.so.1
lrwxr-xr-x   1 root  wheel        11  4月 26 12:28 libGLU.so -> libGLU.so.1
-rwxr-xr-x   1 root  wheel    636484  4月 26 12:28 libGLU.so.1
%

上記のようにNVIDIAドライバのportは、Xorgのportがインストールするlibglx.soとlibGL.soを別の名前に変更した上で、NVIDIAドライバのファイルに置き換えるという処理をします。これはパッケージの一貫性を保つためpkgngでは許可されていない動作です。別の枠組みを導入するなどしてこの問題を解決しない限り、NVIDIAドライバはpkgngからは扱えないということになります。

CURRENTでpkgngを使う場合には上記に注意してください。また今のところ、pkgngを9-STABLE以前の安定版ブランチへマージする予定はありません。

おすすめ記事

記事・ニュース一覧