我正在使用 PackageMaker 创建自己的安装程序。它已经运行了一段时间,但我想测试一个问题,即它会删除以前版本的文件,即使每个新版本都安装到不同的文件夹。有一次,我允许自己选择一个自定义文件夹来安装应用程序(它通常会安装到用户的主目录中)。
现在,所有后续安装(即使是我未修改过的旧安装程序版本)都安装到此自定义文件夹。显然这不是 PackageMaker 的问题,而是 PackageMaker 自动检查先前安装的功能。我可以通过更改安装程序包 ID 来解决这个问题,但我宁愿不这样做。
我如何访问安装程序包数据库?我在哪里可以找到它以及如何修改它?
这对于在从未安装过该应用程序的系统上测试“干净”安装尤其有用。也许有更简单的方法,例如简单的卸载也可以。
我希望能够手动从已安装的应用程序列表中删除我的应用程序。到目前为止,我只在 Receipts 目录中找到了安装历史记录。
答案1
通过 Twitter,我得到了使用该工具的提示pkgutil
。forget 参数会从安装程序数据库中删除条目,但不删除实际文件:
sudo pkgutil --forget com.appname
要查看软件包 ID 列表,请使用:
pkgutil --pkgs
或者使用正则表达式仅显示某些条目:
pkgutil --pkgs=com.k*