このページの本文へ

前へ 1 2 次へ

BOMファイルから読み解くMacのシステムアップデータ

2010年12月16日 12時00分更新

文● 海上忍

  • この記事をはてなブックマークに追加
  • 本文印刷

 この11月、Snow Leopardの最新アップデート「Mac OS X 10.6.5」がリリースされた。不具合の修正とセキュリティの更新が主な内容だが、いくつか新しい機能も追加されている。本稿では、システムアップデータのファイルリストを調べる方法で、公式発表にない新機能を見つけてみよう。

アップデータの内容を調べるには?

 Leopard(Mac OS X 10.5)以降のシステムでは、主にApple純正ソフトウェアの配布に利用されるパッケージ(*.pkg)の管理方式が大きく変更されている。Tiger(Mac OS X 10.4)以前のシステムでは、パッケージをインストールすると、バイナリー部分を除いた部分が「レシート」として/Library/Receiptsディレクトリーに保存され、インストール後にダブルクリックすればインストーラーのファイルメニューから(「ファイルを表示」を選択)内容物を調べることができた。

 Snow Leopardの現在も/Library/Receiptsディレクトリーは存在するが、主に後方互換性確保のために残されているもので、システムアップデータなどApple純正のソフトウェアには使用されていない。Leopard以降では、パッケージに内包されているXML形式の設定ファイル(拡張子「*.plist」)と、パッケージに収録されているバイナリーのリストを記録したレシートファイル(拡張子「*.bom」)が抽出され、/var/db/receiptsディレクトリー以下に保存されるようになったからだ。

plistファイルを見れば、複数のサブパッケージを含むパッケージについても概要を把握できる

 そしてLeopard以降のシステムには、パッケージ管理にIDの概念が導入されている。IDにはデベロッパーごとに一意の識別子、たとえばAppleは「com.apple.pkg.****」が使用されているため、ファイル名を見ればおよそパッケージの性格を推測できる。

 Snow Leopardの現在、システムアップデート用パッケージの設定ファイルは「com.apple.pkg.update.os.10.6.*.plist」、レシートファイルは「com.apple.pkg.update.os.10.6.*.bom」として、/var/db/receiptsディレクトリーに記録されている。

 そして、その2つのファイルをもとにパッケージに収録されていたバイナリーを一覧するコマンドが「pkgutil」(pkgutil(1) Mac OS X Manual Page) だ。先日公開されたシステムアップデータのパッケージの内容は、ターミナルから以下の要領でコマンドを実行すれば確認できる。ここではlessコマンドにパイプすることで、スクロールアウトしてしまうことを防いでいる。


$ pkgutil --files com.apple.pkg.update.os.10.6.5 | less
Mac OS X 10.6.5で更新されたファイル/ディレクトリーのリスト。2万2000行を超えている

(次ページへ続く)

前へ 1 2 次へ

ASCII.jp RSS2.0 配信中