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

macOS 的软件安装方式是不是太古老了

  •  
  •   ybw · 2020-01-20 16:15:58 +08:00 · 8732 次点击
    这是一个创建于 1801 天前的主题,其中的信息可能已经有所发展或是发生改变。

    安装过程,让人直接联想的 1984 年发布的苹果机,那是带软驱的机器,所以你"插入"软驱,自动弹出界面让你拖拽"安装"(只是简单复制),完事以后你需要"推出",这很方便,因为你不需要手动去推软驱那了,非常人性化。

    卸载的问题更大,现在 Mac 和 Windows 的软件,都会在自己的安装目录以外乱丢垃圾,Mac 也有 Windows 注册表的等价物,就是 library 目录的某个子目录,你在下面创建文件,就相当于在 Windows 注册表里面创建了一个子项。

    这样当你"卸载"(简单删除)一个软件,它根本没有机会把自己的垃圾打包带走。

    53 条回复    2021-12-15 23:09:39 +08:00
    BugenZhao
        1
    BugenZhao  
       2020-01-20 16:22:43 +08:00
    把应用拖动到废纸篓,会自动触发对应的卸载脚本的
    murmur
        2
    murmur  
       2020-01-20 16:23:47 +08:00
    所以清理我的麦克才能卖出去那么多份啊
    minamike
        3
    minamike  
       2020-01-20 16:26:05 +08:00 via iPhone
    至少比全家桶好一点
    实在有系统洁癖用 appcleaner 吧
    alexkuang
        4
    alexkuang  
       2020-01-20 16:30:01 +08:00 via Android   ❤️ 4
    @BugenZhao #1 并不。只是单纯的删掉 app
    k9982874
        5
    k9982874  
       2020-01-20 16:30:58 +08:00
    还好吧,正常情况下都可以在 Appstore 这种“现代”软件商店中安装。
    LZ 所说情况大部分是安装个人二次打包的软件(欢喜版),如果是这样就不要吐槽了。
    ipwx
        6
    ipwx  
       2020-01-20 16:31:33 +08:00 via Android
    没有人阻止应用作者写个卸载脚本啊(手动狗头)
    NG6
        7
    NG6  
       2020-01-20 16:32:10 +08:00
    所以这时候就需要他了,和把程序拖进垃圾桶一样
    https://cdn.jsdelivr.net/gh/SuperNG6/pic@master/uPic/s5oBsw.png
    Cavolo
        8
    Cavolo  
       2020-01-20 16:35:29 +08:00 via iPhone
    相比下更讨厌 pkg 的安装方式
    avalanchecoke
        9
    avalanchecoke  
       2020-01-20 16:37:24 +08:00
    用 MAC 不用 HOMEBREW ?
    iamwho
        10
    iamwho  
       2020-01-20 16:39:51 +08:00
    还没有操作系统 /包管理器可以做到火葬场级别的卸载。
    ybw
        11
    ybw  
    OP
       2020-01-20 16:40:56 +08:00 via Android
    @iamwho 起码操作系统不应该在通往"火葬场级别卸载"这个目标上,人为制造障碍。
    iamwho
        12
    iamwho  
       2020-01-20 16:50:00 +08:00
    @ybw #11

    程序的开发者制造的,而不是操作系统制造的。
    ybw
        13
    ybw  
    OP
       2020-01-20 16:52:58 +08:00 via Android
    @iamwho 不作为,也是制造障碍。Windows 有控制面板,调用卸载专用程序,Mac 有对应的东西吗?
    BingoXuan
        14
    BingoXuan  
       2020-01-20 17:14:42 +08:00
    @ybw
    mac 应用是可以通过互联网分发的,不像 iOS 管控那么严格一定要 App Store 分发。所以非 Mac App Store 分发的应用就看开发者够不够用心把卸载脚本写上。如果你了解过 macos 应用构建规范,你是可以通过一个文件夹加上一个可执行的 shell 脚本构建一个 App。当然喜欢恶作剧的人甚至会通过这个脚本生成一堆垃圾文件而在卸载时候完全不删除。

    macOS 对应用的定义类似于 Windwos 上的 Portable 软件(绿色版),随拿随用。你可以通过 airdrop 或者其他途径快速分发给其他人而不是分发安装包(我个人不喜欢 dkpg 安装)
    iamwho
        15
    iamwho  
       2020-01-20 17:15:05 +08:00
    @ybw #13

    操作系统在管理文件 /程序上存在差异是不可避免的。

    同样烂的环境下,我觉得 macOS 查找程序的残留文件就比 Windows 方便。

    此外,如果需要创建一个完整的安装程序,可以使用 MSIX ( https://docs.microsoft.com/en-us/windows/msix/)。
    petercui
        16
    petercui  
       2020-01-20 17:42:11 +08:00   ❤️ 4
    @ybw 你居然真的相信 Windows 下的控制面板中调用卸载专用程序能够把自己的垃圾打包带走?
    love
        17
    love  
       2020-01-20 17:59:09 +08:00 via Android   ❤️ 2
    @petercui 怎么就不行了?除非作者偷懒了或者有意留下
    leafdream
        18
    leafdream  
       2020-01-20 18:15:29 +08:00 via iPhone
    brew cask
    wangkun025
        19
    wangkun025  
       2020-01-20 18:18:06 +08:00
    brew uninstall 也要 brew cleanup 一下。
    chinvo
        20
    chinvo  
       2020-01-20 18:18:28 +08:00 via iPhone   ❤️ 1
    @love #17

    既然你说 win 上的程序除非故意留下或偷懒,都能完整卸载,

    那么 mac 上用 app store 就能完美解决这个问题,但是程序作者偷懒或者故意

    所以这和 mac 系统本身有半毛钱关系

    如果有不能 app store 分发的程序,那么负责任的开发者也会提供卸载工具或者脚本
    chinvo
        21
    chinvo  
       2020-01-20 18:18:40 +08:00 via iPhone   ❤️ 1
    @wangkun025 #19 brew cask zap
    wangkun025
        22
    wangkun025  
       2020-01-20 18:24:43 +08:00
    @chinvo 赞的
    qW7bo2FbzbC0
        23
    qW7bo2FbzbC0  
       2020-01-20 19:01:28 +08:00
    主要是清理起来麻烦吧,要一个个 cd 去删除
    amon
        24
    amon  
       2020-01-20 19:12:02 +08:00
    Mac 安装感觉比 windows 下和流氓软件斗智斗勇好多了~
    jaylee4869
        25
    jaylee4869  
       2020-01-20 19:34:49 +08:00
    @wangkun025 现在 brew cleanup 根据日期:一个月未执行的话会在 update 的时候自动执行了
    ech0x
        26
    ech0x  
       2020-01-20 19:40:09 +08:00
    其实哪个系统都有这个问题,除非每个程序都在沙盒里面,就像 iOS 一样。
    jtshs256
        27
    jtshs256  
       2020-01-20 19:54:53 +08:00
    差不多,AppData 下的配置也不会被删,注册表看心情,本身配置文件和 binary 分开处理似乎也没什么不对的
    germain
        28
    germain  
       2020-01-20 20:11:06 +08:00   ❤️ 1
    www.appzapper.com

    用了好多年了
    mongodb
        29
    mongodb  
       2020-01-20 20:11:43 +08:00
    @jtshs256 道理很对,主要这帮 App 搞一堆目录。

    在 Mac 下往 /Users/xxxx/.oooo 下放不行吗。
    跑到 Application Support 下面一堆,还可能起几个名字。
    jin7
        30
    jin7  
       2020-01-20 20:23:25 +08:00
    对于 windows, 先用 Geek Uninstaller 卸载....(最后要看清楚, 不然会多删了东西)
    然后用 everything 搜索相关的文件 /文件夹并删除, 最后用 ccleaner 清理下, 应该很卸载得干净了吧...
    gypsy
        31
    gypsy  
       2020-01-20 20:50:59 +08:00
    不给全家桶留机会!
    IgniteWhite
        32
    IgniteWhite  
       2020-01-20 22:25:59 +08:00
    @love 用过 geek installer 你就会知道,windows 大部分软件的卸载程序都会留下注册表项和配置文件夹不动…和 macOS library 差不多
    712e1959
        33
    712e1959  
       2020-01-20 22:46:48 +08:00 via Android
    @ybw #9 Fedora Silverblue 可以,用 OSTree 实现的。
    mxalbert1996
        34
    mxalbert1996  
       2020-01-20 23:10:09 +08:00 via Android
    @k9982874 你不是开发吧?我的主力开发机里从 MAS 下的软件不到 20%(除去系统自带)。
    mxalbert1996
        35
    mxalbert1996  
       2020-01-20 23:14:30 +08:00 via Android
    @chinvo 区别就在于,Windows 下系统默认的卸载软件的方式是运行卸载脚本,而 macOS 下是直接删除 app 目录。
    petercui
        36
    petercui  
       2020-01-20 23:21:54 +08:00
    @love 微软自己的卸载程序都不愿意把自己卸载干净,更何况其他的;从另一个角度来讲,在安装完成后运行时才生成的文件,卸载程序是不知道的,它想去删除也做不到。
    ybw
        37
    ybw  
    OP
       2020-01-21 00:03:40 +08:00
    楼上的确定 MAS 里的 App 会把垃圾打包带走吗?

    我刚刚删除了微软的 TODO 软件, ~/Library/Group Containers/ 下面的 3MB 垃圾, 并没有带走
    ybw
        38
    ybw  
    OP
       2020-01-21 00:07:43 +08:00
    @BingoXuan 看楼上
    philobscur
        39
    philobscur  
       2020-01-21 09:28:38 +08:00
    看了楼上的回复,真有人 mbp 里面全是 MAS 的软件???
    ihwbunny
        40
    ihwbunny  
       2020-01-21 09:41:43 +08:00
    为什么会不喜欢 pkg 呢?其实用 pkg 安装的,macOS 会有个 bom 文件,记录所有的安装文件信息。这样的话,卸载就更方便,而且如果会做 pkg 的安装包,一般都会随带一个 uninstaller,所以,相比拖拽的 app,pkg 有更多的优势。有一本书[《 macOS 软件安装包[从入门到精通]》]( https://tonyliu.gitbook.io/macos-packaging),好像还有个群聊。
    lizhuoli
        41
    lizhuoli  
       2020-01-21 10:19:46 +08:00 via iPhone
    一般来说软件优先考虑 Mac App Store,实在找不到替代的才可能去搜索所谓的 dmg pkg 自行分发的软件。
    ybw
        42
    ybw  
    OP
       2020-01-21 10:23:48 +08:00 via Android
    @lizhuoli map 也删不干净,你知道吗?
    ihwbunny
        43
    ihwbunny  
       2020-01-21 10:42:44 +08:00
    并不是所有软件都可以符合 app store 的要求的
    ahaxzh
        44
    ahaxzh  
       2020-01-21 10:44:25 +08:00
    强推哦 Omini Disk Sweeper
    LokiSharp
        45
    LokiSharp  
       2020-01-21 11:27:02 +08:00
    说的好像 Windows 控制面板的卸载能卸载干净一样。。。
    questionyu
        46
    questionyu  
       2020-01-21 12:44:59 +08:00 via Android
    并不觉得方式古老,反而觉得还挺易用的,省的在安装的时候一不小心多了好多垃圾软件。至于卸载问题,这个和系统无关,只要是程序作者偷懒,哪个系统都能留下垃圾。
    love
        47
    love  
       2020-01-21 14:23:49 +08:00
    @petercui 我以前就是给公司做安装程序的,在安装完成后运行时才生成的文件怎么会不知道。实际上卸载脚本就是一个正常脚本,可以干所有事
    henryshen233
        48
    henryshen233  
       2020-01-21 20:27:07 +08:00
    连这个 AppCleaner 都没人知道吗。。。
    https://freemacsoft.net/appcleaner/
    xiebruce
        49
    xiebruce  
       2020-01-22 11:49:01 +08:00
    相信我,是你的硬盘太小了,我 1T 硬盘从来不在意这点小垃圾,我用几年后(这几年从来没用过清理软件),用 cleanMyMac 清理也只清理出几个 G 而已( QQ 和微信的不算,那个直接在软件上自己点清理了)
    ybw
        50
    ybw  
    OP
       2020-01-22 15:25:34 +08:00
    @xiebruce 相信我, 你的阅读理解能力还有提升空间
    zhuangku556
        51
    zhuangku556  
       2020-01-22 18:09:50 +08:00 via iPhone
    @xiebruce 行了知道你有钱无脑拉满
    kojirou
        52
    kojirou  
       2020-01-23 13:53:55 +08:00
    您要 iOS 那样?
    Cavolo
        53
    Cavolo  
       2021-12-15 23:09:39 +08:00 via iPhone
    @philobscur 即使是 MAS 软件卸载后都会留下 pkg 包,从另一个角度看,MAS 的软件更不容易彻底卸载
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1051 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:18 · PVG 03:18 · LAX 11:18 · JFK 14:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.