我用 Homebrew Cask 中社区维护的规则写了一个软件残留文件清理插件

2023-02-21 07:22:26 +08:00
 jybox

之前我就在 V2EX 就分享过用 brew uninstall --zap 来清理软件残留,有 39 个人给我点了感谢(地址)。

我是觉得 Homebrew 里这个社区维护的软件残留列表(或者说清理规则)是非常有价值的,比如我们随便找一个软件,它的 cask 文件 是这样的:

$ brew cat bitbar
cask "bitbar" do
  version "1.10.1"
  sha256 "8a7013dca92715ba80cccef98b84dd1bc8d0b4c4b603f732e006eb204bab43fa"

  url "https://github.com/matryer/bitbar/releases/download/v#{version}/BitBar.app.zip"
  name "BitBar"
  desc "Utility to display the output from any script or program in the menu bar"
  homepage "https://github.com/matryer/bitbar/"

  app "BitBar.app"

  zap trash: [
    "~/Library/BitBar Plugins",
    "~/Library/Caches/com.matryer.BitBar",
    "~/Library/Preferences/com.matryer.BitBar.plist",
  ]
end

其中 zap 部分就是需要清理的遗留文件。

于是我做了一个插件可以一键扫描 Homebrew Cask 中所有软件(目前支持其中约 3400 个)的 cask 文件中的路径,找出已卸载软件的遗留文件:

项目的源代码在 https://github.com/jysperm/homebrew-leftover-scanner

安装:

brew tap jysperm/leftover-scanner

开始扫描:

brew scan-leftovers

这个插件本身并不会删除任何文件,而是会打印出列表并引导你使用 brew uninstall 来删除,所以不必担心误删。

3486 次点击
所在节点    分享创造
26 条回复
jybox
2023-02-22 01:02:51 +08:00
@SimonOne @Abirdcfly
这个脚本实际上需要先扫描到已安装的软件(会在最开头打印出来),通过 brew 安装的自然是简单;而其他安装来源的话(如官网下载)则是去检查目标路径(一般是 /Applications )下是否有同名的 .app 。所以像 JetBrains Toolbox 这种安装到其他路径(/Library/Application Support/JetBrains/Toolbox )暂时就检测不到了,我再想想有没有其他办法。
GoRoad
2023-02-22 10:16:22 +08:00
确实会出现命令打印不全的情况,比如 `brew uninstall --cask dbeaver-enterprise` ,只打印到了 `brew uninstall -f --zap dbeaver-enterpr`,而且这种情况挺常见
Yuusha
2023-02-23 23:25:36 +08:00
确实,经常有出现 brew uni 、brew uninsta 这种情况,希望大佬修复一下
SimonOne
2023-02-24 11:16:15 +08:00
@jybox #21 有一个 bug ,我的 clashx pro ( brew 的是 clashx ,不同名)的文件被扫出来是 clashx 的残留,但其实我没装 clashx 。bartender 3 被扫出来有残留,但 bartender 3 是我安装包手动安装的。

这两个情况在我全新安装系统的 mac mini 也复现了,所以应该不是我先通过 brew 安装软件再卸载再自行安装包安装导致的。
Comyn
2023-02-26 01:33:41 +08:00
很赞,但确实也遇到了命令打印不全的问题,以及已经按提示卸载但还是扫描出来的问题
jybox
2023-03-01 00:57:19 +08:00
@artee 你需要先运行一下 brew tap homebrew/cask 。就像前面有人提到的,Homebrew 4.0 开始不会默认把 cask 仓库 clone 到本地了 ...
@hackpro 已经修复了,可以运行 brew update 更新到最新版本
@ljsh093 @GoRoad @Yuusha @Comyn 感谢反馈,最新版本已拆分到两行来解决这个问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/917790

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX