Apple pkg Packageファイルをアンインストールするにはどうすればよいですか?


50

反対の意見にもかかわらず、すべてのパッケージが1つのディレクトリにのみきれいにインストールされるわけではありません。できれば元のパッケージを使用して(またはインストール済みパッケージに関する情報のリポジトリから)pkgファイルのインストールプロセスを逆にする方法はありますか?

具体的には、Intel MacBookにPowerPC MySQL 5.4.1パッケージをインストールしましたが、それをきれいに元に戻したいと思います。

回答:


83

https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_Xは、nativeを使用して.pkgをアンインストールする方法を説明していますpkgutil

変更された抜粋

$ pkgutil --pkgs # list all installed packages
$ pkgutil --files the-package-name.pkg # list installed files

ファイルのリストを視覚的に調べた後、次のようなことができます。

$ pkgutil --pkg-info the-package-name.pkg # check the location
$ cd / # assuming the package is rooted at /...
$ pkgutil --only-files --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -f
$ pkgutil --only-dirs --files the-package-name.pkg | tail -r | tr '\n' '\0' | xargs -n 1 -0 sudo rmdir

言うまでもなく、root権限でファイルを削除するときは常に細心の注意を払う必要があります。特に、一部のパッケージは共有システムコンポーネントを更新する可能性があるため、それらをアンインストールすると、必要なコンポーネントを削除してシステムが実際に破損する可能性があることに注意してください。

小さいパッケージの場合、パッケージファイルのリストを視覚的に検査した後、ファイルを手動で削除する方がおそらく安全です。

どうやら、かつてはで--unlink利用可能なオプションがありましたpkgutilが、Lionの時点ではmanページには記載されていません。おそらく危険すぎると判断されたため、削除されました。

ファイルをアンインストールしたら、次の方法で領収書を削除できます。

$ sudo pkgutil --forget the-package-name.pkg

1
rmdir代わりに使用することをお勧めしrm -rます。1も使用することができますtacまたはtail -rそれらが削除されますように、ディレクトリ名のリストを反転させるために、正しい順序
サム・メイソン

18
sudo rm -ir PARTを実行しないでください。リストには親ディレクトリが含まれています!pkgが/ usr / ...に何かをインストールした場合、すべての/ usr /を削除します
FiloSottile 14年

2
使用するディレクトリを削除するコマンドを変更しrmdir(空ではないディレクトリは削除されません)、使用tail -rしてディレクトリをより良い順序でリストします。
brablc 14年

1
皮肉なことに、pgkutilを使用すると、uninstaller.plが隠れていることがわかりました。パーフェクト!
cmroanirgo

pkgが追跡していないように見えることの1つは、pkgによって作成されたシンボリックリンクです。上記の手順(またはここのいずれかの方法)からパッケージをクリーンアップすると、壊れたシンボリックリンクが残る可能性があります。
ジェームズマクマホン

19

システムに組み込まれているため、アンインストーラーを使用してファイルをアンインストールするオプションはないため、アンインストーラーを自分で作成するか、手動でファイルを削除できます。

どのファイルがインストールされているかを判断する最善の方法は、.pkg可能であれば元のファイルを取得することです。これが不可能な場合は、代わりに見つかった領収書を使用することができます/Library/Receipts。最大の問題は、.mpkg複数の.pkgファイルを含むファイルを扱う.pkg場合、そのフォルダー内のすべての個別のファイルを検索する必要があることです(日付で並べ替えてもそれほど難しくありません)。

あなたは持っていたら.pkg、ファイル(領収書またはフルインストールファイル)あなたは、その後にユーティリティを使用するかアンインストーラを作成するか、それらを手動で削除することができますので、ファイルを見つけることができました:

アンインストーラー

Absolute Software InstallEaseは、既存の.pkgファイルからアンインストーラーを作成できる無料のプログラムです。アン.pkgインストーラーファイルを作成します(注:実際に.pkgファイルを作成するには、Appleの開発者ツールをインストールする必要があります)

手動で

PacifistなどのプログラムまたはSuspicious PackageなどのQuickLookプラグインを使用すると、インストールされているファイルと場所を表示できます。そのリストを使用して、それらのフォルダに手動で移動し、ファイルを削除できます。私はInstallEaseを発見する前に個人的にこの方法を何度も使用しましたが、インストールが多くの場所に分散していない場合、これは多くの場合より高速です。


ありがたいことに、通常の5.1 mysqlパッケージは領収書を残していますが、ベータ5.4 mysqlパッケージは領収書を残していません。それは少し奇妙です。
dlamblin

4
うわー、これを知っていたら、.pkgそもそもインストールしなかっただろう。yu noプログラムと機能OS X?
NobleUplift


1

:あなたはこのサイトからの提案を試すことができhttp://www.entropy.ch/software/macosx/mysql/remove-old-mysql.html。また、これに関するアドビのサポートサイトに記事があります。ここにリンクがあります:http://support.adobe.com/devsup/devsup.nsf/docs/52355.htm

また、通常dmgにpkgファイルがあるアプリには、通常、アンインストールに使用される別のpkgもあります。ここでこれが当てはまるかどうかはわかりませんが、元のdmgファイルを保持することをお知らせしたかったのです。


1

シェルsrciptを作成しました

あなたはそれを試すことができます

https://github.com/iamrToday/pkg-remove

.gifデモを示しています。ソースコードを見ることができます。brablcのコマンドラインをラップするだけです。それを実行して情報を検索したり、apkを削除したりできます。インタラクティブです。


それは何をするためのものか?
Pierre.Vriens

.gifデモを表示します。ソースコードを見ることができます。brablcのコマンドラインをラップするだけです。それを実行して情報を検索したり、apkを削除したりできます。インタラクティブです。:)
rTodayリン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.