全局安装的包支持的 node 版本可能不同
是的,这个问题一定会存在,建议通过切换 npm prefix 路径解决,把不同版本 node 下安装的全局包隔离开来。当然 nvm 等方案也可以解决问题,但本文是不一样的烟火。
手动切换确实比较繁琐,可以写个 shell 脚本把切换 formula 和切换 npm prefix 结合起来。
如何固定某个 formula 的版本?
虽然说不运行 brew upgrade 就一直是固定的版本,但如果想只固定某个 formula 的版本而允许其他可以升级,也是极好的。自带的 pin 、 unpin 命令就是用来解决这一问题,如: brew pin node 。
如何删除某个 formula 的旧版本?
尽管 brew cleanup 可以删除一个 formula 的所有旧版本,但通常我们可能只想删除某几个太旧且多余的版本而不是全部。 brew 没有提供这样的命令,我们可以直接从 Cellar 里面删除:
初步测试未发现有副作用,欢迎讨论和建议。
如何在升级时自动删除旧版本?
根据 brew upgrade 命令的说明,设置一个 HOMEBREW_UPGRADE_CLEANUP 环境变量就好了,比较简单。
Tips and Tricks - Homebrew Documentation
FAQ - Homebrew Documentation
homebrew - how to install older versions - Stack Overflow
Homebrew install specific version of formula? - Stack Overflow
Using Homebrew how do I remove some specific versions but not all old versions - Stack Overflow
本文基于
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 发布,欢迎引用、转载或演绎,但是必须保留本文的署名 BlackStorm 以及本文链接 ,且未经许可不能用于商业目的。如有疑问或授权协商请与我联系。