V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zzz6519003
V2EX  ›  程序员

我用以下方法证明了 如果用 homebrew 装软件,就卸载不干净了?

  •  
  •   zzz6519003 · 2023-09-17 09:36:00 +08:00 · 8973 次点击
    这是一个创建于 462 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 brew 安装 qq 音乐(brew install qqmusic),登陆账号

    删除 qq 音乐

    重新安装 qq 音乐

    你会发现你的 qq 音乐依然是登陆后的状态

    第 1 条附言  ·  2023-09-17 10:55:10 +08:00
    相反:

    如果 你在 QQ 音乐下官网 app ,用 dmg 安装

    用习惯的方式直接删除,再安装,就不会有登陆信息
    60 条回复    2023-09-19 18:10:52 +08:00
    crysislinux
        1
    crysislinux  
       2023-09-17 09:38:40 +08:00 via Android   ❤️ 2
    这很正常啊,homebrew 管不了应用程序往哪儿写文件
    lovestudykid
        2
    lovestudykid  
       2023-09-17 09:41:48 +08:00
    brew uninstall --zap
    另外根据 homebrew 的 leader
    > I strongly disagree. Most package managers do not do this.
    vitovan
        3
    vitovan  
       2023-09-17 09:42:15 +08:00   ❤️ 1
    brew uninstall vim 也不会删除你的配置文件吧。
    lovestudykid
        4
    lovestudykid  
       2023-09-17 09:42:24 +08:00   ❤️ 3
    电子洁癖该治治
    Kaiv2
        5
    Kaiv2  
       2023-09-17 09:43:01 +08:00
    用户数据文件一般不是放在软件安装目录。你应该搜索 mac 文件目录结果,mac 下如何彻底删除 *** 软件
    musi
        6
    musi  
       2023-09-17 09:45:30 +08:00 via iPhone   ❤️ 1
    你在 QQ 音乐下官网 app 也这样
    你这证明方法一点都不严谨
    kingfalse
        7
    kingfalse  
       2023-09-17 10:07:29 +08:00 via Android
    这都接受不了,直接放虚拟机得了。
    bao3
        8
    bao3  
       2023-09-17 10:22:18 +08:00 via iPhone
    你去网易音乐,手动下载 dmg ,你手动安装,你再卸载,你看你是不是证明了网易音乐是个流氓软件。
    weeei
        9
    weeei  
       2023-09-17 10:22:44 +08:00
    @crysislinux brew 的脚本是网友维护的,如果发现不干净可以提交 PR 完善一下
    sanshao124
        10
    sanshao124  
       2023-09-17 10:27:01 +08:00 via iPhone
    从来不用 homebrew ,几乎不安装 pkg 的安装包,卸载用卸载软件,然后自己再把系统文件夹查一遍有没有残留
    crysislinux
        11
    crysislinux  
       2023-09-17 10:30:44 +08:00 via Android
    @weeei 这里是应用程序打开后再写入的文件,早都超了 brew 的范围了,除非让应用在一个虚拟文件系统跑,不然没办法。
    mschultz
        12
    mschultz  
       2023-09-17 10:49:07 +08:00
    登录信息一般是存储在 macOS Keychain 里的吧(我没就 QQ Music 这一具体应用进行验证,但的确有不少软件是这么做的)
    zzz6519003
        13
    zzz6519003  
    OP
       2023-09-17 10:53:50 +08:00
    @musi 试过了
    tlerbao
        14
    tlerbao  
       2023-09-17 10:54:26 +08:00
    我都用 app cleaner 卸载哈
    mokiki
        15
    mokiki  
       2023-09-17 10:57:27 +08:00   ❤️ 10
    这说明解耦做得好,程序文件和用户数据是两码事
    zsdroid
        16
    zsdroid  
       2023-09-17 11:16:00 +08:00
    难道拆马桶要把已经在化粪池里的屎还原?
    kenvix
        17
    kenvix  
       2023-09-17 11:19:18 +08:00
    这又不是手机端,你怎么管 app 往哪写?
    uxstone
        18
    uxstone  
       2023-09-17 11:22:22 +08:00
    非必要,不安装!
    非必要,不安装!
    IDAEngine
        19
    IDAEngine  
       2023-09-17 11:33:13 +08:00
    homebrew 安装的不是沙盒,肯定卸载不干净。可以提个 pr ,homebrew 以沙盒安装
    hefish
        20
    hefish  
       2023-09-17 11:51:42 +08:00
    不干净就不干净嘛。。又不是不能用。
    luckykong
        21
    luckykong  
       2023-09-17 11:58:12 +08:00 via iPhone
    习惯的方式 是什么方法?求告诉一下
    有几个其他软件,迫切需要删除本地信息
    lsry
        22
    lsry  
       2023-09-17 12:00:46 +08:00
    我倒是希望用戶信息和軟件安裝在同一個文件夾,這樣就可以一鍵刪除,徹底消失
    MeMoDiv
        23
    MeMoDiv  
       2023-09-17 12:07:22 +08:00   ❤️ 1
    不要总是把 uninstall.exe 当作 timetravel.exe……
    ck65
        24
    ck65  
       2023-09-17 12:21:58 +08:00
    别浪费时间分析了,直达患处吧 https://freemacsoft.net/appcleaner/
    Leonard
        25
    Leonard  
       2023-09-17 12:25:12 +08:00 via iPhone
    在意这个的话建议只从 App Store 下载软件
    icyalala
        26
    icyalala  
       2023-09-17 12:56:04 +08:00
    "用习惯的方式直接删除" 是什么?
    我尝试了一下,直接删除 .app 然后重新复制,并不会清除登录信息,这显而易见。
    EVANGELIONAir
        27
    EVANGELIONAir  
       2023-09-17 13:00:32 +08:00
    包管理器不都是这样吗,他只负责程序文件而不负责配置文件
    你在 linux 下无论哪个发行版包管理器都只是卸载了程序文件,用户目录下的.config 是不会删除的,重装软件,还是已登录情况
    hellomynameis
        28
    hellomynameis  
       2023-09-17 13:21:54 +08:00
    @MeMoDiv 唉桌面系统,还是 iPhone 删 app 删的干净
    agagega
        29
    agagega  
       2023-09-17 13:33:10 +08:00 via iPhone   ❤️ 4
    @hellomynameis
    iPhone 也不一定能删干净,还有 keychain 这个玩意。百度系 app 删了重装还能提示你是不是要登录上一次的账号
    56rhcrivs55TVKdX
        30
    56rhcrivs55TVKdX  
       2023-09-17 13:42:32 +08:00
    @mokiki 赞同
    56rhcrivs55TVKdX
        31
    56rhcrivs55TVKdX  
       2023-09-17 13:44:09 +08:00
    举个例子, 你用 homebrew 安装了 chrome, 然后用 chrome 下载了一堆文件, 先不说卸载 chrome 的同时把下载的文件删除合不合理, homebrew 怎么知道 chrome 下载的文件扔哪呢?
    LK99
        32
    LK99  
       2023-09-17 14:04:53 +08:00
    @sanshao124 求详细说说,具体“自己再把系统文件夹查一遍”有没有详细步骤。
    darksword21
        34
    darksword21  
       2023-09-17 15:14:51 +08:00
    用 nix
    eairjhioaegnh
        35
    eairjhioaegnh  
       2023-09-17 15:32:00 +08:00
    @sanshao124 电子洁癖晚期了
    Tink
        36
    Tink  
       2023-09-17 16:40:53 +08:00
    正常的
    ysc3839
        37
    ysc3839  
       2023-09-17 17:17:31 +08:00 via Android
    首先绝大多数 macOS app 并不是真正的“绿色软件”,仅仅是免安装软件。按照绿色软件的定义,应该是不会主动往程序目录外写文件的,但绝大多数 macOS app 仅仅是能解压即用,用户数据等还是会写到系统公共的应用数据目录。
    另外仅靠包管理也不能可靠实现卸载软件时把软件数据都删除,最多是提前写好软件可能会写数据的目录,卸载时顺便删除,没写的话就删不掉。
    要可靠实现软件卸载时删除数据,只能依赖沙盒,然而目前三大桌面操作系统:Windows 只有 UWP 应用支持沙盒,传统 Win32 应用还不支持。macOS 只对商店应用启用较严格的沙盒,非商店应用是可以免授权读写用户目录下许多地方的。Linux 下似乎只有 snap 支持沙盒?
    LitterGopher
        38
    LitterGopher  
       2023-09-17 17:35:18 +08:00
    說得很對,可是我安裝 brew 是爲了卸載的時候卸載得比較乾淨麼?
    studyrun
        39
    studyrun  
       2023-09-17 17:50:44 +08:00   ❤️ 2
    @lovestudykid #4 你既然这么说,那以后也别说 Windows 和安卓软件流氓,到处拉屎了
    starrycat
        40
    starrycat  
       2023-09-17 19:03:22 +08:00 via Android
    卸载软件一般我会先退出登录
    sanshao124
        41
    sanshao124  
       2023-09-17 20:05:49 +08:00
    @eairjhioaegnh 哈哈,是的,我家里地上有根头发都要捡起来
    sanshao124
        42
    sanshao124  
       2023-09-17 20:11:29 +08:00   ❤️ 2
    @LK99
    用 appcleaner 类软件卸载软件后
    删除系统残余
    ~/Library/Application Support
    ~/Library/Containers
    有时候这两个里面还是会有卸载软件的东西
    billgong
        43
    billgong  
       2023-09-17 20:50:56 +08:00
    主要还是对 Homebrew 的定位不了解。这只是个包管理器罢了,就算换 apt yum 这些也卸载不干净啊。和 Windows 端的 scoop 不是一路人。况且这个包还是个 cask ,这下连包管理器都算不上了,只是个软件安装器了,如果 cask 的规则里不包含 zap ,那生成的配置、缓存之类的文件是不会被清理掉的。

    可以先用 AppCleaner 或 CleanMyMac 之类的软件清理干净,然后再在 hb 里卸载对应的 cask
    lovestudykid
        44
    lovestudykid  
       2023-09-17 22:32:35 +08:00
    @Leonard App Store 安装的也要写其他文件夹的
    IvanLi127
        45
    IvanLi127  
       2023-09-17 22:38:11 +08:00 via Android
    这明明你装的软件有问题。。。而且这个脚本大概率是第三方维护的。。。

    最后这说不定是那个软件的 feature 呢 \狗头
    1217950746
        46
    1217950746  
       2023-09-17 22:58:54 +08:00
    建议看看 ~/Library/Containers 这个目录,高血压起来了不要怪我 [手动狗头]
    zhouweiluan
        47
    zhouweiluan  
       2023-09-18 00:17:04 +08:00
    理解 OP 的意思。
    之前很多人吹用 homebrew 装就是为了能 100%把安装的东西的所有痕迹删除干净,只是对这些人的反驳而已😂
    mikewang
        48
    mikewang  
       2023-09-18 02:40:17 +08:00
    需要加上 --zap 选项。
    就如同 apt remove 和 apt purge ,如果你使用 apt remove 也会发现“卸载不干净”。
    tianshilei1992
        49
    tianshilei1992  
       2023-09-18 03:18:03 +08:00
    QQ 音乐竟然支持 HomeBrew 安装,高级…
    jqtmviyu
        50
    jqtmviyu  
       2023-09-18 03:32:52 +08:00   ❤️ 1
    那我再说个让你高血压的, 你装个类似 ffmpeg , 卸载后发现它装上的一堆依赖还在.

    brew deps --tree --installed

    我隔半年就会运行 brew autoremove
    parthenon2007
        51
    parthenon2007  
       2023-09-18 08:48:05 +08:00
    @jqtmviyu #50 学到了。
    maemolee
        52
    maemolee  
       2023-09-18 09:30:02 +08:00
    我用普通的安装方式,应用也会在~/Library/Containers 里面留下一堆垃圾,都得手动删。
    yexingshusheng
        53
    yexingshusheng  
       2023-09-18 09:43:41 +08:00
    Huelse
        54
    Huelse  
       2023-09-18 10:18:29 +08:00
    @jqtmviyu 我还会不定期跑一次 brew cleanup --prune=all
    8355
        55
    8355  
       2023-09-18 10:44:54 +08:00
    @Huelse This operation has freed approximately 1.5GB of disk space. tks
    bjfane
        56
    bjfane  
       2023-09-18 11:19:36 +08:00
    @8355 装的挺多啊
    supersu
        57
    supersu  
       2023-09-18 11:36:29 +08:00 via Android
    用 mac clean pro 卸载,这玩意卸载的比 app cleanner 还要干净,不过可能有个副作用,就是卸载残留扫描把我的 vim 插件全给扬了
    Richared
        58
    Richared  
       2023-09-18 16:53:50 +08:00
    @supersu 昨天用 cleanmymac 一通扫,给我 fleet 里没有另存的文件扬了。
    supersu
        59
    supersu  
       2023-09-18 18:44:19 +08:00 via Android
    @Richared 节哀顺变~😂
    x250881478
        60
    x250881478  
       2023-09-19 18:10:52 +08:00
    作为上架过 homebrew cask 的人, 连带数据一起删除并不是个好主意, 比如我的软件, 是会创建数据库文件的, 如果和软件放到一起, 用户删除时候, 连个提示都没, 直接就没了, 肯定有问题吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2913 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:50 · PVG 21:50 · LAX 05:50 · JFK 08:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.