Ubuntu安装Angular-CLI报错:git权限拒绝及版本不一致问题求助
Hey there, let's tackle each of your issues one by one to get Angular CLI installed smoothly:
1. 错误日志显示的Node/NPM版本和当前使用版本不符
这个问题大概率是因为你用了sudo执行npm命令,导致系统调用了默认的老版本Node/NPM(而不是你当前用户环境里的v9.11.1/5.6.0)。
解决方法:
优先推荐:不要用sudo安装全局包
用sudo会导致权限问题,还会混用系统环境。你可以调整npm全局安装目录的权限,让当前用户拥有读写权限:# 创建全局npm目录(如果不存在) mkdir -p ~/.npm-global # 配置npm使用这个目录 npm config set prefix '~/.npm-global' # 将这个目录添加到系统PATH(编辑~/.bashrc或~/.zshrc) echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc # 刷新环境变量 source ~/.bashrc之后直接执行
npm install -g @angular/cli就不需要sudo了,而且会用你当前的Node版本。如果必须用sudo(不推荐)
让sudo继承当前用户的PATH环境变量,确保调用的是你正在使用的Node/NPM:sudo -E env PATH=$PATH npm install -g @angular/cli
2. Git克隆时publickey权限拒绝
Angular CLI的部分依赖在安装时会尝试通过SSH克隆GitHub仓库,而你的本地没有配置对应的SSH密钥到GitHub账号,导致权限被拒。
解决方法:
方法一:改用HTTPS克隆替代SSH
全局配置Git,让所有git@github.com的请求自动转为HTTPS,这样不需要SSH密钥就能克隆:git config --global url."https://github.com/".insteadOf "git@github.com:"方法二:配置GitHub SSH密钥
如果想继续用SSH,生成并添加SSH密钥到你的GitHub账号:# 生成SSH密钥(一路回车默认配置即可) ssh-keygen -t ed25519 -C "your_email@example.com" # 启动ssh-agent并添加密钥 eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519然后把
~/.ssh/id_ed25519.pub里的内容复制到GitHub账号的SSH密钥设置中。
3. ENOENT, stat 'angular/cli' 错误
这个错误通常是npm缓存损坏或者临时安装文件有问题导致的。
解决方法:
- 清除npm缓存:
npm cache clean --force - 删除可能残留的临时安装目录(如果有的话),然后重新执行安装命令。
把这些步骤组合起来,先解决版本 mismatch 问题,再处理Git权限,最后清理缓存重新安装,应该就能成功了。
内容的提问来源于stack exchange,提问作者Pradnya Bolli

