尽管有意见相反,并非所有软件包都只安装在一个目录中。有没有办法逆转 pkg 文件的安装过程,最好使用原始软件包(或来自已安装软件包的信息存储库)?
具体来说,我已经在英特尔 MacBook 上安装了 PowerPC MySQL 5.4.1 包,并且想要干净地逆转它,恢复 5.1 x86 安装,我可以看到它仍然存在,但现在无法正常工作。
答案1
https://wincent.com/wiki/Uninstalling_packages_(.pkg_files)_on_Mac_OS_X描述如何使用本机卸载 .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 开始,手册页中没有提到它。也许它被删除了,因为它被认为太危险了。
卸载文件后,您可以使用以下命令删除收据:
$ sudo pkgutil --forget the-package-name.pkg
答案2
系统内置没有使用卸载程序卸载文件的选项,因此您可以自己制作卸载程序或手动删除文件。
确定已安装哪些文件的最佳方法是尽可能找到原始文件.pkg
。如果不可能,您也可以使用在 中找到的收据/Library/Receipts
。您最大的问题是当您处理.mpkg
包含多个.pkg
文件的 时,因为您必须.pkg
在该文件夹中找到所有单独的文件(幸运的是,按日期排序时并不那么困难)。
一旦您有了.pkg
文件(收据或完整安装文件),您就可以使用实用程序来创建卸载程序或查找文件,以便您可以手动删除它们:
卸载程序
绝对软件安装易是一款免费程序,可以从现有的 .pkg 文件创建卸载程序。制作卸载程序.pkg
文件(注意:您需要安装 Apple 的开发人员工具才能实际制作文件.pkg
)
手动
使用如下程序和平主义者或者像 QuickLook 插件可疑包裹您可以查看安装了哪些文件以及在哪个位置。使用该列表,您可以手动导航到这些文件夹并删除文件。在发现 InstallEase 之前,我个人已经无数次使用过这种方法,但如果安装不分散在许多位置,这种方法通常仍然更快。
答案3
您还可以使用 UninstallPKG 卸载 .pkg 软件包(http://www.corecode.at/uninstallpkg/)
[全面披露:是的,我就是作者]
答案4
您可以尝试此站点的建议:http://www.entropy.ch/software/macosx/mysql/remove-old-mysql.html。另外,Adobe 支持网站上有一篇关于此问题的文章;链接如下:http://support.adobe.com/devsup/devsup.nsf/docs/52355.htm。
此外,通常具有包存档于药物通常还有另一个用于卸载的 pkg。我不确定这是否正确,但我想让你知道保留原始 dmg 文件。