Skip to content

Instantly share code, notes, and snippets.

@guipacheco2
Last active August 29, 2015 14:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save guipacheco2/bdc2587377610de3d3cd to your computer and use it in GitHub Desktop.
Save guipacheco2/bdc2587377610de3d3cd to your computer and use it in GitHub Desktop.
Mac

How do I uninstall any Apple pkg Package file?

At some point — I'm not sure which — Apple added an easier-to-use solution in the form of pkgutil.

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

After visually inspecting the list of files you can do something like:

  • $ 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 -i
  • $ pkgutil --only-dirs --files the-package-name.pkg | tr '\n' '\0' | xargs -n 1 -0 sudo rm -ir

Needless to say, extreme care should always be taken when removing files with root privileges. Particularly, be aware that some packages may update shared system components, so uninstalling them can actually break your system by removing a necessary component.

For smaller packages it is probably safer to just manually remove the files after visually inspecting the package file listing.

Apparently, there was once an --unlink option available in pkgutil, but as of Lion it is not mentioned in the man page. Perhaps it was removed because it was deemed too dangerous.

Once you've uninstalled the files, you can remove the receipt with:

  • $ sudo pkgutil --forget the-package-name.pkg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment