Ubuntu22环境执行pnpm install遇EACCES权限拒绝问题求助
解决pnpm install权限报错的方案
排查方向1:修正pnpm存储目录权限
报错显示pnpm的内容可寻址存储位于/opt/nodejs/node-v18.16.0-linux-x64/bin/store/v3,该目录可能不属于当前操作用户:
- 先查看目录所属:
ls -ld /opt/nodejs/node-v18.16.0-linux-x64/bin/store/v3 - 若目录归root所有,执行以下命令修改权限:
sudo chown -R $USER:$USER /opt/nodejs/node-v18.16.0-linux-x64/bin/store - 更安全的做法是指定pnpm使用用户目录下的存储:
完成后重新执行pnpm config set store-dir ~/.pnpm-storepnpm install
排查方向2:清理残留临时文件
报错源于临时文件重命名失败,可能是之前安装残留了无权限的文件:
- 删除项目下的依赖目录和锁文件:
rm -rf node_modules pnpm-lock.yaml - 重新执行
pnpm install
排查方向3:修复项目目录权限
如果之前用过sudo执行pnpm,会导致项目文件归root所有,普通用户无法操作:
sudo chown -R $USER:$USER /opt/code/oa-en-collectio
之后用普通用户身份执行pnpm install(禁止用sudo运行pnpm)
排查方向4:检查文件系统挂载属性
若/opt是单独挂载的分区,可能开启了noexec/nodev属性,阻止pnpm创建硬链接:
- 查看挂载属性:
mount | grep /opt - 若存在
noexec,修改/etc/fstab去掉该属性,重新挂载后再尝试安装
内容的提问来源于stack exchange,提问作者あずさがわりょう
相关产品推荐
相关产品推荐

