NPM을 사용하여 노드 패키지를 설치하려고 하는데 권한 오류만 표시됩니다. 어제 문제 없이 패키지를 설치할 수 있었지만 어떤 이유로 작동이 중지되었습니다.
asgeir@1e19udt0shu6:~/nodejs/first_test_app$ sudo npm install sharp
> [email protected] install /home/asgeir/nodejs/first_test_app/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)
info sharp Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.7.4/libvips-8.7.4-linux-x64.tar.gz
ERR! sharp EACCES: permission denied, open '/home/asgeir/nodejs/first_test_app/node_modules/sharp/9016-libvips-8.7.4-linux-x64.tar.gz'
info sharp Attempting to build from source via node-gyp but this may fail due to the above error
info sharp Please see https://sharp.pixelplumbing.com/page/install for required dependencies
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/asgeir/nodejs/first_test_app/node_modules/sharp/build'
gyp ERR! System Linux 2.6.32-042stab133.2
gyp ERR! command "/usr/local/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/asgeir/nodejs/first_test_app/node_modules/sharp
gyp ERR! node -v v10.16.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
npm WARN [email protected] No repository field.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `(node install/libvips && node install/dll-copy && prebuild-install) || (node-gyp rebuild && node install/dll-copy)`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/asgeir/.npm/_logs/2019-07-17T06_16_33_097Z-debug.log
인터넷 검색을 한 후에 일부 영혼의 사람들이 같은 오류를 겪고 있음을 발견했습니다. 분명히 NPM과 NodeJS를 다시 설치하여 작동하게 했지만 저는 아무런 성공도 거두지 못했습니다. 이 오류를 극복하는 방법에 대한 아이디어가 있습니까?
답변1
또 다른 극단적인 인터넷 검색 끝에 다음 해결책을 찾았습니다.
NPM이 Sharp 패키지를 설치하도록 하려면 이 명령을 사용하세요.
sudo npm install --unsafe-perm=true --allow-root
특정 모듈을 다운로드해야 하는 경우 다운로드해야 하는 종속성을 표시하십시오.
sudo npm install dependency-name --unsafe-perm=true --allow-root
나는 리눅스 에티켓에 대해 잘 모르지만 이 명령은 범죄처럼 느껴집니다. 하지만 작동합니다!
편집: 효과가 없다면 시도해 보세요.SO에서 이 기사를 찾았습니다.