安装Gatsby-cil失败:npm ERR!sh:1:node-gyp-build:权限被拒绝。

3

我尝试使用npm在WLS2上安装gatsby-cil,但失败了。

这是错误信息:

root@LAPTOP-7EEFPLOM:~# npm install -g gatsby-cli
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm ERR! code 127
npm ERR! path /root/.nvm/versions/node/v16.14.0/lib/node_modules/gatsby-cli/node_modules/lmdb
npm ERR! command failed
npm ERR! command sh -c node-gyp-build
npm ERR! sh: 1: node-gyp-build: Permission denied

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2022-03-14T01_49_08_533Z-debug-0.log

起初我以为是WSL的问题,但后来我尝试在云服务器上进行相同的操作,结果也一样。

我还试着使用在网上找到的一个解决方案:

npm config set user 0
npm config set unsafe-perm true

但仍然出现了相同的错误。

1个回答

2

尝试:

sudo chown -R $(whoami) ~/

似乎您在两个环境中都没有足够的权限来安装全局包,因此更改~/ 权限文件夹可能会解决您的问题。由于这不是Gatsby相关的问题(而是它的依赖项),您也可以尝试使用sudo权限单独安装它们。在这种情况下:
sudo npm install -g node-gyp node-pre-gyp node-gyp-build

那么你应该能够重新安装 gatsby-cli,这应该会跳过 node-gyp 包。


2
它成功了!!!在运行 npm install 之前,我运行了 chown -R 600 ~/ 来更改权限。作为新手,我没有想到 root 用户也会有权限问题。非常感谢。 - wubbalubbadubs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接