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

Ubuntu安装expo-cli时遭遇npm EACCES权限错误求助

解决expo-cli安装时的EACCES权限拒绝错误

看你在安装expo-cli的时候反复碰到权限拒绝的问题,已经手动修改了不少目录和文件的所有权,但还是卡在unlink '/usr/bin/expo'这个错误上。其实核心原因是:/usr/bin目录本身属于root用户,哪怕你把里面的软链接所有者改成自己,普通用户也没有权限删除该目录下的文件。结合你给出的权限信息和错误日志,我整理了几个针对性的解决步骤:

一、先确认当前冲突文件的细节

先执行命令查看/usr/bin/expo的详细权限,确认它的状态:

ls -l /usr/bin/expo

同时检查它指向的目标文件权限:

ls -l /usr/lib/node_modules/expo-cli/bin/expo.js

二、手动清理冲突的软链接

因为普通用户没法直接修改/usr/bin下的文件,所以用sudo来备份并清理现有冲突文件:

  1. 备份现有软链接(以防后续需要恢复):
sudo mv /usr/bin/expo /usr/bin/expo.bak
sudo mv /usr/bin/expo-cli /usr/bin/expo-cli.bak
  1. 清理npm缓存,避免残留的安装信息干扰:
npm cache clean --force

三、用安全的方式重新安装expo-cli

不建议用root权限安装npm包(容易引发更多权限问题),更稳妥的是把全局包安装到用户专属目录:

方法1:临时指定用户目录安装

执行以下命令将expo-cli安装到用户目录下:

npm install -g expo-cli --prefix ~/.npm-global

然后把这个目录添加到环境变量,让系统能找到expo命令:

  • 编辑你的shell配置文件(比如~/.bashrc或~/.zshrc),添加一行:
    export PATH=~/.npm-global/bin:$PATH
    
  • 执行以下命令让配置生效:
    source ~/.bashrc  # 如果用的是bash
    # 或者 source ~/.zshrc 如果用的是zsh
    

方法2:修改npm全局默认路径(一劳永逸)

先创建用户专属的全局npm目录:

mkdir -p ~/.npm-global

然后配置npm默认使用这个路径:

npm config set prefix '~/.npm-global'

同样把这个路径添加到环境变量(步骤同方法1),之后所有全局npm包都会安装到这个目录,不会再碰到权限问题。

四、验证安装结果

完成上述步骤后,执行以下命令检查是否安装成功:

expo --version

如果能正常显示expo-cli的版本号,就说明问题解决了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:04:39