WSL Ubuntu子系统安装Node.js后执行node命令提示Exec format error
WSL Ubuntu安装Node.js后执行node报错的解决方法
问题原因
系统环境变量PATH中linuxbrew的路径优先级高于apt的系统路径,且brew安装的Node.js二进制文件与WSL Ubuntu的架构不兼容,导致出现cannot execute binary file: Exec format error错误。
解决步骤
先验证apt安装的Node.js是否正常,直接指定系统路径执行:
/usr/bin/node --version若能正常显示版本,说明apt的安装没有问题。
检查当前PATH顺序,确认brew路径的优先级:
echo $PATH输出中如果
/home/linuxbrew/.linuxbrew/bin在/usr/bin之前,就会优先调用brew的错误版本。
方案1:调整PATH优先级(保留brew)
编辑你的shell配置文件(比如~/.bashrc或~/.zshrc),找到设置brew PATH的行:
export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"
修改为将系统路径放在前面:
export PATH="$PATH:/home/linuxbrew/.linuxbrew/bin"
执行以下命令使配置生效:
source ~/.bashrc # 若用zsh则执行source ~/.zshrc
方案2:卸载brew中的Node.js(保留apt版本)
直接卸载brew安装的Node.js,之后系统会自动调用apt安装的版本:
brew uninstall node
方案3:若brew架构不兼容,卸载并重装brew
如果brew本身是错误架构安装的(比如WSL为x86_64却装了arm版本),可先卸载brew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
再重新针对x86_64架构安装brew后,重新安装Node.js即可。
内容的提问来源于stack exchange,提问作者userhhfh
相关产品推荐
相关产品推荐

