如何卸载任何Apple pkg Package文件?

Modified on: Wed, 13 Mar 2019 22:40:03 +0800

尽管对相反有意见,但并非所有包裹干净地安装在一个目录中。有没有办法反转pkg文件的安装过程,最好是使用原始包(或从有关已安装包的信息库)?

具体来说,我已经在英特尔MacBook上安装了PowerPC MySQL 5.4.1软件包,并希望彻底改变它,恢复我能看到的5.1 x86安装仍然存在,但现在无法正常工作。

最佳答案

https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X介绍了如何卸载.pkg使用原生pkgutil。我已成功关注它以卸载Midnight Commander。

修改后的摘录

$ 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开始,手册页中没有提到它。也许它被删除了,因为它被认为太危险了。

卸载文件后,您可以使用以下内容删除收据:

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

相关问答

添加新评论