首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mac上软件包的卸载程序

问Mac上软件包的卸载程序
EN

Stack Overflow用户
提问于 2011-03-15 13:58:51
回答 4查看 19K关注 0票数 21

作为对用户的服务,我想提供一个卸载脚本来完全删除我的应用程序在Mac上的所有痕迹。应用程序是使用包安装的,而不是仅仅被拖到应用程序文件夹中,因为它是一个守护程序类型的应用程序,在安装时也需要运行脚本才能启动。

我的想法是包括一个名为uninstall.sh的文件,并将其放入/Library/Application Support/com.<mycompany>.<myapplication>/中,并从应用程序文档中引用该文件。其目的基本上是在运行、卸载和删除相应的plist以及删除任何应用程序文件时停止守护进程。这听起来合理吗?还是有更好的方法来做到这一点?

另外,我想知道使用pkgutil --forget删除包的痕迹是否是好做法--如果我不这样做,下次安装软件包时,它会显示为升级而不是安装。对最佳实践信息有什么建议或建议吗?

在OS?上没有这样做的标准方法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-09 00:25:31

在OS X上没有这样做的标准方法。是的,令人震惊,我知道。苹果公司一直警告大家远离软件包安装程序(包括为他们提供的文档不足)。然后,他们专为自己的独立应用程序使用软件包安装程序..。去想想吧。

是的,你应该包括pkgutil --forget。

如果您的客户对这种脚本很满意,那么您的方法听起来不错。如果他们想要“双击”,那么您可能应该将卸载程序放在/Applications中,但如果可以的话,可以避免这种情况。

如果您有一个GUI,状态项,或首选面板,那么最好在那里放置一个“卸载”按钮或菜单项,而不是要求他们乱搞终端。

顺便说一句,如果你去寻找软件交付指南,它已经是移动一年左右了,而他们“更新”它。

票数 17
EN

Stack Overflow用户

发布于 2013-07-02 12:33:36

由于无法删除软件包,多年来一直困扰着我,因此我编写了一个卸载软件包的工具:

http://www.corecode.at/uninstallpkg/index.html

这样做比shell脚本要好一些,因为它确保永远不会删除任何其他已安装包所使用的文件。

票数 7
EN

Stack Overflow用户

发布于 2012-05-24 12:36:08

我解决这个问题的方法是使用自动机,创建一个应用程序文档,然后添加对话框和脚本操作。最后,保存Automator应用程序文档,最后使用一个简单的GUI应用程序来运行卸载。

卸载操作通常需要管理员权限--我在Automator中通过运行一个shell脚本操作来解决这个问题,该操作生成另一个shell脚本,然后可以在applescript操作中运行,如下所示:

代码语言:javascript
复制
on run {input, parameters}
    do shell script "/tmp/uninstaller.sh" with administrator privileges
    return input
end run
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5312837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档