코드코코

[리눅스]에러1. /mnt/c/Program Files/nodejs/npm: 6: Syntax error: word unexpected (expecting "in") // 에러2. Error: EACCES: permission denied 본문

우당탕탕/에러모음집

[리눅스]에러1. /mnt/c/Program Files/nodejs/npm: 6: Syntax error: word unexpected (expecting "in") // 에러2. Error: EACCES: permission denied

코드코코 2021. 12. 16. 22:47

현재상황

- vscode로 우분투내의 작업폴더를 열어 npm start 하려던 중

 

에러발생

- 에러내용

: not foundram Files/nodejs/npm: 3: 
: not foundram Files/nodejs/npm: 5: 
/mnt/c/Program Files/nodejs/npm: 6: Syntax error: word unexpected (expecting "in")

 

해결방법

1. which 명령어로 무엇을 실행시키고 있나 확인

 - 우분투 내의 npm을 실행 중인데 c드라이브의 경로가 보이는 것이 이상하므로 실행경로를 확인하기

 - 확인 결과 윈도우에 설치된 npm를 실행시키고 있었음

 - 환경변수를 확인하면 nodejs를 윈도우에서 가져오고 있는 것이 확인된다.

 

2.  재설치

 - PATH의 우선순위를 이용하여 재설치를 해주자.

 - 윈도우의 환경변수 PATH를 참조하더라도, WSL 내에서 기본적으로 설정한 PATH 항목의 우선순위가 높다

root@DESKTOP-RJ31OF5:/home/ubuntu/lg/server# sudo apt install npm

...중략

root@DESKTOP-RJ31OF5:/home/ubuntu/lg/server# npm install npm@latest -g
#apt로 설치 시 보통 구버전이 설치되므로, npm을 업그레이드 해준다.

...중략

root@DESKTOP-RJ31OF5:/home/ubuntu/lg/server# source /etc/environment
#변경된 환경변수를 재적용

...중략

root@DESKTOP-RJ31OF5:/home/ubuntu/lg/server# npm -v

 

3. npm 실행해보기

 - 또 다른 에러가 나오긴 하였으나 성공적으로 npm 명령어가 실행되는 것을 알 수 있다.

 - 에러내용

Error: EACCES: permission denied, access '/home/ubuntu/workspace/lg/server'
npm ERR!  { [Error: EACCES: permission denied, access '/home/ubuntu/workspace/lg/server']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/home/ubuntu/workspace/lg/server\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/home/ubuntu/workspace/lg/server' }

 

4. 위의 permission 에러를 해결해보자

 - $ ls -la 명령어를 통하여 확인해보니 소유자와 소유그룹이 root로 되어있음을 확인

 - $ sudo chown -R {소유자:소유그룹} {적용할 디렉토리 경로} 명령어로 ubuntu(user계정이름)로 변경

 

5. npm 실행해보기

 - 성공적으로 의존성 모듈이 설치되었다!

 

-끝-