Snow Leopardの新コマンド「pkgutil」でパッケージを展開する

海上忍
2010-05-12 10:35:58
  • このエントリーをはてなブックマークに追加
最新特集【一覧】

 前回に続き、pkgutilコマンドの使い方について。今回は、インストールせずにパッケージを展開する方法を紹介する……その前に、前回紹介したパッケージをアンインストールする方法について補足しておきたい。

 まず、パッケージは“セオリーどおりに”作られたものであることが前提だ。パッケージ(.pkg)のフォーマットはLeopardのとき大幅に変更され、バンドル形式ではない単一のファイルとして提供されるようになった。

 Leopard以降のシステムには、パッケージIDを利用した一元管理の概念も導入されている。たとえばAppleが提供するパッケージには、Automatorならば「com.apple.pkg.Automator」、iTunesならば「com.apple.pkg.iTunes」などと一意のIDが割り当てられている。逆にいえば、IDを持たないパッケージはpkgutilコマンドでフルサポートされない。

 そのような(古い)パッケージをpkgutilコマンドでアンインストールする場合は、くれぐれも慎重に。/etcや/usrなどの領域にファイルをコピーするパッケージに難があった場合、そのディレクトリ自体が削除されてしまう可能性があるからだ。Time Machineでシステム復旧する労をいとわないならばともかく、Appleが配布するSnow Leopard向けパッケージ以外は、アンインストールに使用すべきではないだろう。

未インストールのパッケージを展開する

 さて、インストールせずにパッケージを展開する方法だが、「--expand」オプションを利用する。必要な引数は2つ、パッケージファイル名と展開先のパスだ。以下に示す実行例では、ホームフォルダ直下に「TEMP」フォルダを作成し、そこへ(バンドル形式の)パッケージを書き出している。

$ pkgutil --expand ARC.pkg ~/TEMP

 パッケージに収録されたファイルを確認したいだけならば、「--bom」オプションに続けてパッケージファイル名を指定しよう。ただし、/tmpディレクトリ以下に作成される一時ファイルのパスが返されるだけなので、以下に示す実行例のように、コマンドの実行結果をlsbomコマンドの引数にするといい。これで、パッケージの内容をチェックできるはずだ。

$ lsbom `pkgutil --bom ARC.pkg`
  • 新着記事
  • 特集
  • ブログ