V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
micyng
V2EX  ›  macOS

请教,mac osx 有木有类似 pkgbuild、用于卸载的工具

  •  
  •   micyng · 2014-03-06 11:09:17 +08:00 · 4097 次点击
    这是一个创建于 3704 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为卸载不只是删除文件,还有一些其他事情要做
    所以就不要说让用户直接拖拽到垃圾箱这样的话了

    谢谢
    10 条回复    1970-01-01 08:00:00 +08:00
    jakwings
        1
    jakwings  
       2014-03-06 12:12:24 +08:00
    直接拖拽到垃圾箱是比较安全的做法。安装软件时注意有没有说明卸载方法,记得据此分类放置安装文件。
    我一般用 AppCleaner 寻找到所有个人配置文件,然后通过正常方式卸载程序,顺便提示系统卸载相关服务(AppCleaner 做不到),最后才用没关闭的 AppCleaner 删除找到的个人配置文件。

    总之建议不明白那些卸载软件的原理不要优先使用那些软件来卸载软件,当心玩脱。
    volCANo
        2
    volCANo  
       2014-03-06 12:22:58 +08:00
    @jakwings 什么叫“通过正常方式卸载程序”?还有“顺便提示系统卸载相关服务”这个是谁给提示?
    jakwings
        3
    jakwings  
       2014-03-06 12:37:21 +08:00
    @volCANo 正常方式是指,按照应用安装包附带的卸载说明卸载,或者直接将应用拖到垃圾箱。

    提示系统卸载相关服务,我猜测是应用本身已经附带了被拖动到回收站卸载时会取消服务的指令,或者系统根据应用的安装信息找到相关的服务并自动卸载。而 AppCleaner 这个软件只不过是强制删除文件,并不会通过垃圾桶来删除文件。
    micyng
        4
    micyng  
    OP
       2014-03-06 13:27:23 +08:00
    @jakwings ”提示系统卸载相关服务“是说拖拽垃圾箱这个动作可以被hook吗?
    roamlog
        5
    roamlog  
       2014-03-06 13:29:23 +08:00   ❤️ 1
    hewigovens
        6
    hewigovens  
       2014-03-06 13:48:06 +08:00   ❤️ 1
    @micyng clean my mac的做法是监听~/.Trash, 事后通知
    jakwings
        7
    jakwings  
       2014-03-06 13:50:35 +08:00   ❤️ 1
    @micyng 见 3 楼。应用包的信息文件中好像是有指示相关服务文件的,垃圾箱可能会根据那个文件找到相关服务并卸载。我还没开发过应用,不清楚是不是程序利用了 hook 。
    micyng
        8
    micyng  
    OP
       2014-03-06 14:15:25 +08:00
    @hewigovens 是个好办法,可是mac连inotify之类的系统调用都木有,岂不是很蛋疼
    hewigovens
        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权限
    hewigovens
        10
    hewigovens  
       2014-03-06 18:59:16 +08:00
    看到5楼的回复, 我也再贴下我之前造的轮子: https://github.com/hewigovens/PackageUninstaller
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5434 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 07:50 · PVG 15:50 · LAX 00:50 · JFK 03:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.