如何配置Homebrew不删除旧版本,实现版本切换?
禁用Homebrew升级自动删除旧版本的方法
我来帮你搞定这个问题——Homebrew默认升级时会自动清理旧版本,但我们可以通过临时或永久的方式禁用这个行为,这样就能用brew switch轻松切换版本了。
临时禁用(单次升级)
如果只是某一次升级想保留旧版本,直接给brew upgrade加--keep-old参数就行:
brew upgrade terraform --keep-old
执行这条命令后,旧版本的terraform就不会被自动移除,之后你随时可以用brew switch terraform 0.11.13切回旧版本。
永久禁用(全局生效)
要是想让所有升级操作都默认保留旧版本,我们可以通过设置环境变量来实现:
- 临时会话生效:
在当前终端窗口执行下面的命令,这次会话里的所有brew升级都会保留旧版本:export HOMEBREW_KEEP_OLD_VERSIONS=1 - 永久生效(针对当前用户):
把环境变量写入你的shell配置文件,比如:- 用Bash的话,编辑
~/.bash_profile - 用Zsh的话,编辑
~/.zshrc
在文件末尾添加一行:
保存后执行export HOMEBREW_KEEP_OLD_VERSIONS=1source ~/.bash_profile(或source ~/.zshrc)让配置立即生效,之后所有brew upgrade都会自动保留旧版本。 - 用Bash的话,编辑
额外小技巧
- 要是之后想恢复自动删除旧版本的功能,只需要把环境变量设为0,或者删除配置文件里的对应行再source一下:
export HOMEBREW_KEEP_OLD_VERSIONS=0 - 想查看某个软件已安装的所有版本,可以用:
这样就能知道哪些版本可以用brew list --versions terraformbrew switch切换了。
内容的提问来源于stack exchange,提问作者vikas027
相关产品推荐
相关产品推荐

