You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Userland Ubuntu安装angular-cli报npm rename错误

故障原因

这个报错是Android端UserLAnd运行Ubuntu环境的典型兼容问题,和Angular CLI、npm本身的代码缺陷无关,核心诱因有两点:

  • UserLAnd使用的是Android FUSE模拟文件系统,这类文件系统不支持npm缓存逻辑依赖的跨目录原子rename操作:npm下载依赖包时会先将临时文件写入_cacache/tmp目录,下载完成后通过rename系统调用将临时文件原子移动到正式缓存目录,FUSE文件系统执行该操作时会出现文件句柄释放异常,导致rename执行时源临时文件已经被回收,触发ENOENT找不到文件错误。
  • 你使用sudo执行安装命令时,npm缓存路径指向/root/.npm,UserLAnd环境下root用户的文件权限映射存在缺陷,该路径下的临时文件会被Android存储管控机制意外清理,进一步放大了rename操作的失败概率。
修复步骤

按顺序执行以下操作即可完成安装:

  1. 先清理已损坏的历史缓存,执行时不要加sudo:
    npm cache clean --force
  2. 重新配置npm的全局安装路径和缓存路径,全部放到当前普通用户的家目录下,避开/root路径的权限映射问题,依次执行以下命令:
mkdir -p ~/.npm-global ~/.npm-cache
npm config set prefix ~/.npm-global
npm config set cache ~/.npm-cache
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
  1. 执行安装命令,禁止加sudo,同时添加参数绕过缓存原子重命名逻辑:
    npm install -g @angular/cli --no-package-lock
  • 如果上述命令仍然报rename错误,追加--no-cache参数完全禁用本地缓存即可:
    npm install -g @angular/cli --no-package-lock --no-cache
安装验证

安装完成后执行ng version,终端正常输出Angular CLI、Node.js等版本信息即代表安装成功。

注意:后续在UserLAnd环境下安装npm全局包时,都不要加sudo,避免触发路径权限映射问题。

内容的提问来源于stack exchange,提问作者Phoenix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 22:06:51