2010年5月6日木曜日

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

パッケージIDを調べる。ここではオプション「--pkgs」で全パッケージIDを出力し、それをgrepでフィルタしているが、「--pkgs=正規表現」の形で条件を指定してもいいだろう。これで、パッケージIDが「com.apple.pkg.Lexmark_LaserDrivers」と判明した。
$ pkgutil --pkgs | grep -i Lexmark
com.apple.pkg.Lexmark_LaserDrivers

いきなり削除せず、パッケージの内容を確認すること。オプションに「--files」を指定し、引数に先ほどのパッケージIDを指定すればOK。
$ pkgutil --files com.apple.pkg.Lexmark_LaserDrivers

削除して問題なさそうと判断すれば、今度は「--unlink」オプションを使いpkgutilコマンドを実行する(管理者権限で実行するためsudoを併用のこと)。本当に削除して構わないか、との問には「y」で答えるべし。これで指定したパッケージIDに含まれるファイルは、インストール先から削除される。その後、「--forget」オプションでパッケージIDおよびレシートファイルを削除すれば、作業完了だ。

なお、ほかのパッケージが使用しているファイル/ディレクトリと重複する場合には、削除できない旨のエラーメッセージが表示される。Appleが定めるSnow Leopard準拠の形式に沿わないパッケージは、そもそも削除できないことがあるので、念のため。
$ sudo pkgutil --unlink com.apple.pkg.Lexmark_LaserDrivers
Do you really want to delete these files? y

$ sudo pkgutil --forget com.apple.pkg.Lexmark_LaserDrivers

-ネタ元-