You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止brew cleanup删除特定旧版本Ansible(2.3.2.0)

解决Homebrew清理时保留指定旧版本Ansible的方法

我太懂你这个痛点了!之前也踩过类似的坑,分享几个亲测有效的办法,帮你留住需要的Ansible 2.3.2.0,同时还能正常用brew cleanup清理其他没用的旧版本:

方法1:把旧版本提取到自定义Tap(最靠谱)

这个方法是让Homebrew把你需要的旧版本当成一个独立包来管理,彻底避免被清理:

  • 先创建自己的本地Tap(相当于专属软件源):
    brew tap-new $USER/local-tap
    
  • 把Ansible 2.3.2.0的公式提取到这个Tap里:
    brew extract ansible $USER/local-tap --version=2.3.2.0
    
  • 安装这个自定义Tap里的旧版本Ansible:
    brew install $USER/local-tap/ansible@2.3.2.0
    
    完成后,这个版本就会被Homebrew视为独立的、需要保留的包,brew cleanup再也不会动它了。你依然可以用brew switch在官方最新版和这个自定义旧版本之间切换。

方法2:手动给旧版本目录加保留标记(简单hack)

如果不想折腾自定义Tap,试试这个临时但有效的小技巧:

  • 先找到Ansible旧版本的安装目录:
    ls $(brew --prefix)/Cellar/ansible/
    
    你应该能看到2.3.2.0这个文件夹
  • 给这个目录创建一个.keep文件,告诉Homebrew别删它:
    touch $(brew --prefix)/Cellar/ansible/2.3.2.0/.keep
    
    这个方法利用了Homebrew清理时的小逻辑——如果目录里有自定义文件,大概率会跳过清理,不过后续Homebrew更新后是否还生效不好说,但应急用完全没问题。

方法3:选择性清理(最保守)

放弃全量的brew cleanup,只清理你确定不需要的包:

  • 比如你只想清理git和node的旧版本,就运行:
    brew cleanup git node
    
  • 每次清理前可以先用brew cleanup --dry-run预览会被删除的内容,确认没有Ansible 2.3.2.0之后再执行,虽然麻烦点,但绝对安全。

另外你提到的brew pin确实只对当前链接的版本生效,它的作用是阻止版本升级,而非保留已安装的旧版本,所以确实解决不了你的问题。

内容的提问来源于stack exchange,提问作者Elvinos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:28:26