![]() | 1 jakwings 2014-03-06 12:12:24 +08:00 直接拖拽到垃圾箱是比较安全的做法。安装软件时注意有没有说明卸载方法,记得据此分类放置安装文件。 我一般用 AppCleaner 寻找到所有个人配置文件,然后通过正常方式卸载程序,顺便提示系统卸载相关服务(AppCleaner 做不到),最后才用没关闭的 AppCleaner 删除找到的个人配置文件。 总之建议不明白那些卸载软件的原理不要优先使用那些软件来卸载软件,当心玩脱。 |
![]() | 3 jakwings 2014-03-06 12:37:21 +08:00 @volCANo 正常方式是指,按照应用安装包附带的卸载说明卸载,或者直接将应用拖到垃圾箱。 提示系统卸载相关服务,我猜测是应用本身已经附带了被拖动到回收站卸载时会取消服务的指令,或者系统根据应用的安装信息找到相关的服务并自动卸载。而 AppCleaner 这个软件只不过是强制删除文件,并不会通过垃圾桶来删除文件。 |
![]() | 5 roamlog 2014-03-06 13:29:23 +08:00 ![]() |
![]() | 6 hewigovens 2014-03-06 13:48:06 +08:00 ![]() @micyng clean my mac的做法是监听~/.Trash, 事后通知 |
![]() | 7 jakwings 2014-03-06 13:50:35 +08:00 ![]() @micyng 见 3 楼。应用包的信息文件中好像是有指示相关服务文件的,垃圾箱可能会根据那个文件找到相关服务并卸载。我还没开发过应用,不清楚是不是程序利用了 hook 。 |
![]() | 8 micyng OP @hewigovens 是个好办法,可是mac连inotify之类的系统调用都木有,岂不是很蛋疼 |
![]() | 9 hewigovens 2014-03-06 18:58:14 +08:00 @micyng 监控Trash至少有3种做法: 1. 创建一个launchd job, 具体看看 man launchd.plist并搜索WatchPaths 2. 使用FSEvent API 3. 直接open /dev/fsevents, 需要root权限 |
![]() | 10 hewigovens 2014-03-06 18:59:16 +08:00 看到5楼的回复, 我也再贴下我之前造的轮子: https://github.com/hewigovens/PackageUninstaller |