![如何从 Mac OS X 上的安装程序包数据库中删除已安装的应用程序?](https://linux22.com/image/1305706/%E5%A6%82%E4%BD%95%E4%BB%8E%20Mac%20OS%20X%20%E4%B8%8A%E7%9A%84%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E5%8C%85%E6%95%B0%E6%8D%AE%E5%BA%93%E4%B8%AD%E5%88%A0%E9%99%A4%E5%B7%B2%E5%AE%89%E8%A3%85%E7%9A%84%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我正在使用 PackageMaker 创建自己的安装程序。它已经运行了一段时间,但我想测试一个问题,即它会删除以前版本的文件,即使每个新版本都安装到不同的文件夹。有一次,我允许自己选择一个自定义文件夹来安装应用程序(它通常会安装到用户的主目录中)。
现在,所有后续安装(即使是我未修改过的旧安装程序版本)都安装到此自定义文件夹。显然这不是 PackageMaker 的问题,而是 PackageMaker 自动检查先前安装的功能。我可以通过更改安装程序包 ID 来解决这个问题,但我宁愿不这样做。
我如何访问安装程序包数据库?我在哪里可以找到它以及如何修改它?
这对于在从未安装过该应用程序的系统上测试“干净”安装尤其有用。也许有更简单的方法,例如简单的卸载也可以。
我希望能够手动从已安装的应用程序列表中删除我的应用程序。到目前为止,我只在 Receipts 目录中找到了安装历史记录。
答案1
通过 Twitter,我得到了使用该工具的提示pkgutil
。forget 参数会从安装程序数据库中删除条目,但不删除实际文件:
sudo pkgutil --forget com.appname
要查看软件包 ID 列表,请使用:
pkgutil --pkgs
或者使用正则表达式仅显示某些条目:
pkgutil --pkgs=com.k*