WSL2 npm/vscode EACCES, EPERM 오류 해결법

este·2023년 5월 15일
0

5월 4일 경 발생한 오류였는데, 새 WSL2 환경을 세팅하고 기존 프로젝트 좀 건드리다가 새 프로젝트를 시작하려던 찰나 npm 오류가 발생하였다. 당시에 사진을 찍어놓진 않아서 재현한 사진으로 대체하여 포스트를 작성한다.

npm EACCES/EPERM 오류


chown으로 권한도 주고 sudo --preserve-env npm을 통해 npm을 sudo로 실행할 수 있게 만들어보려고도 했는데 슈퍼유저 권한 부여도 안 됐다. 알고 보니 그 이유가 있었다.
당시 nvm을 통해 node 및 npm을 설치하였는데 npm의 경로를 조회해보니(which npm) C:\, 즉 Window의 npm이 실행되고 있는 것이었다. Window의 명령어가 WSL 환경에서 디렉터리를 생성하거나 파일을 수정하는 등의 permission이 없을 수도 있지.
결국 nvm으로 설치한 node/npm을 지우고 nvm도 제거 후 아래 명령어로 해결하였다(결국 재설치했다는 뜻이다).
curl -sL https://deb.nodesource.com/setup_19.x | sudo -E bash -
sudo apt-get install -y nodejs

user Permission 관련 오류

vim으로 package.json을 생성하고 install 명령을 실행해보니 위 문제만이 문제가 아니었다... 파일 생성 및 수정 권한이 없었다. 권한 부여를 위해 아래 명령어로 해결하였다.
sudo chown -R <name> <dir>(sudo chown -R este .)
웃픈 것은, github에서 나의 다른 프로젝트를 clone해서 작성하는 것은 권한 이슈가 없었는데 새로운 프로젝트를 생성하려니 오류가 발생했다. git clone 후 vscode에서 읽으면 뜨는 author trust 관련 경고문과 관련이 있는 것일까..?


분명 WSL로 고생하는 분들이 계실텐데 조금이나마 도움이 되고자 내가 겪은 오류와 해결하는 방법을 포스트로 작성한다. 반대로 분명 도움이 안 되실 수도 있다... 필자보다 더 나은 해결 방안을 가졌거나 같은 내용이더라도 글을 더 잘 쓰는 포스터 등에게 더 큰 도움을 받을 수도 있으니 본인과 같은 방법으로 해결이 안 되었다면 다른 글을 참고하여 무사히 해결하시길 빌겠다.

시도하면서 참고해본 링크들(모두 실패)

성공한 링크

profile
조금 이상한 사람

0개의 댓글