Parrot OS无法安装最新Node.js包,创建React应用遇EACCES权限错误
解决Parrot OS上Node.js升级及React应用创建的权限问题
你遇到的EACCES错误是因为普通用户没有权限写入系统级的/usr/local/lib/node_modules目录,直接用sudo运行npm会导致后续文件权限混乱,以下是两种可靠的解决方法:
方法一:修改npm全局目录到用户私有目录
- 创建用户专属的npm全局目录:
mkdir -p ~/.npm-global - 配置npm使用该目录作为全局包安装路径:
npm config set prefix '~/.npm-global' - 将新的全局目录添加到系统PATH中,编辑bash配置文件:
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc - 重新加载配置使修改生效:
source ~/.bashrc - 现在可以正常安装全局包,比如升级Node.js的
n工具:npm install -g n - 安装最新版Node.js:
n latest
方法二:使用nvm管理Node.js版本(更推荐)
nvm可以让你在多个Node.js版本间自由切换,且所有文件都在用户目录下,避免权限问题:
- 安装nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash - 重新加载shell配置:
source ~/.bashrc - 安装最新版Node.js:
nvm install node - 设置默认使用最新版Node.js:
nvm alias default node - 验证安装成功:
node -v npm -v - 之后即可正常创建React应用:
npx create-react-app my-app
注意事项
- 不要用
sudo npm安装全局包,这会导致node_modules目录所有权变为root,后续普通用户操作会持续出现权限问题。 - 如果之前已经用sudo安装过包,需要修复目录权限:
sudo chown -R $USER:$GROUP /usr/local/lib/node_modules
内容的提问来源于stack exchange,提问作者Oluwapelumi_Sam
相关产品推荐
相关产品推荐

