推荐方案是更改 npm 全局安装目录:创建 ~/.npm-global 目录,配置 prefix,添加至 PATH,验证后安装;其他方案包括临时 sudo、PowerShell 策略调整、修复 ~/.claude 权限及使用 nvm 隔离环境。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

如果您尝试全局安装 OpenClaw,但命令执行时提示 EACCES: permission denied、npm ERR! code EACCES 或类似拒绝访问错误,则说明当前用户无权向 npm 默认全局目录(如 /usr/local/lib/node_modules 或 C:\Users\XXX\AppData\Roaming\npm)写入文件。以下是解决此问题的步骤:
一、更改 npm 全局安装目录(推荐)
该方法避免使用管理员权限,符合企业级最小权限原则,可永久规避权限冲突,且不污染系统路径。
1、在终端中创建新的全局目录:
mkdir ~/.npm-global
2、配置 npm 使用该目录作为全局前缀:
npm config set prefix '~/.npm-global'
3、将新目录的 bin 路径添加至系统 PATH 环境变量:
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
4、验证配置是否生效:
npm config get prefix
5、重新执行安装命令:
npm install -g openclaw@latest
二、临时使用 sudo(仅限 Linux/macOS)
该方法通过提升进程权限绕过目录写入限制,适用于快速验证或一次性部署,但存在安全风险且不适用于生产环境。
1、确保已安装 Node.js 22+ 并确认网络通畅;
2、在终端中执行带 sudo 的安装命令:
sudo npm install -g openclaw@latest
3、若提示 SHARP_IGNORE_GLOBAL_LIBVIPS 相关错误,追加环境变量参数:
sudo env SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm --no-fund --no-audit install -g openclaw@latest
三、Windows PowerShell 执行策略与权限协同修复
Windows 用户常因双重限制(PowerShell 脚本禁用 + npm 目录权限不足)同时触发报错,需同步调整执行策略与安装方式。
1、以管理员身份启动 PowerShell;
2、设置当前用户的脚本执行策略为 RemoteSigned:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
3、关闭并重新打开 PowerShell(非管理员模式),执行:
npm config set prefix "$HOME\AppData\Roaming\npm"
4、再次运行安装命令:
npm install -g openclaw@latest
四、检查并修复 ~/.claude 目录权限(macOS/Linux)
OpenClaw 后续运行依赖 ~/.claude 目录的读写能力,若该目录由 root 创建或权限异常,会导致安装后技能加载失败或静默退出。
1、检查目录所有权与权限:
ls -ld ~/.claude
2、若显示 owner 非当前用户或权限不含 drwxr-xr-x,执行修复:
chown -R $(whoami) ~/.claude && chmod -R 755 ~/.claude
3、验证子目录结构完整性:
ls -la ~/.claude/skills/
五、使用 nvm 管理 Node 版本并隔离 npm 环境
nvm 可避免系统级 Node 安装带来的权限耦合,其默认全局模块路径天然归属当前用户,从根本上消除 EACCES 风险。
1、安装 nvm(macOS/Linux):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
2、重启终端后安装兼容版本:
nvm install 22 && nvm use 22
3、确认 npm 全局路径归属当前用户:
npm config get prefix
4、直接执行安装:
npm install -g openclaw@latest










