Homebrew无法识别NVM安装的Node.js 23.6.0,该如何解决?
问题解答
为什么Homebrew识别不到NVM安装的Node?
是的,这确实是因为你通过NVM安装Node导致的。Homebrew的依赖检测逻辑默认优先识别自身包管理系统安装的软件包,而非第三方工具(比如NVM)安装的版本。虽然你的终端能通过PATH找到NVM的Node,但brew info的静态检查只会扫描Homebrew自身的包数据库,所以会显示Node未安装。
解决方法
方法1:直接尝试安装Qt,忽略brew info的检测结果
brew info的依赖标记只是静态检查,实际安装过程中Homebrew会检测系统PATH里的可执行文件。既然你的终端已经能正常调用node,可以直接执行:
brew install qt
很多时候这种情况下安装会正常进行,因为实际运行时能找到Node。
方法2:用Homebrew安装兼容Catalina的Node版本
考虑到你的系统是Catalina(较旧版本),Node 23.6.0过于新颖,可能和Homebrew的Qt依赖不兼容。你可以安装Homebrew支持的旧版Node(比如LTS版本16,它兼容Catalina):
brew install node@16 brew link node@16 --force
安装并链接后,Homebrew就能在依赖检测中识别到Node,后续安装Qt就不会有问题。
方法3:临时调整PATH让Homebrew优先识别NVM的Node
如果不想安装Homebrew版Node,可以在执行brew命令前,确保NVM的Node路径在PATH最前面,然后再运行安装:
export PATH="/Users/tghuguenin/.nvm/versions/node/v23.6.0/bin:$PATH" brew install qt
这种方式能让Homebrew在检测时优先找到NVM的Node。
内容的提问来源于stack exchange,提问作者tghuguenin
相关产品推荐
相关产品推荐

