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

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

  •  
  •   zzz6519003 · 224 天前 · 7784 次点击
    这是一个创建于 224 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    删除 qq 音乐

    重新安装 qq 音乐

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

    第 1 条附言  ·  224 天前
    相反:

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

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

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

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

    brew deps --tree --installed

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