wsl2 yarn 실행 시 ERROR: spawn ~ EACCES 에러 해결

Jiumn·2024년 7월 23일
post-thumbnail

내가 쓰는 운영체제는 윈도우다. 하지만 회사 서비스가 리눅스 서버에서 돌아가기 때문에 리눅스를 다룰 일이 많다. ssh 접속도 하고 평소에도 리눅스 공부할 겸 윈도우에서 리눅스를 돌리는 방법을 찾다가 발견한 wsl. 처음에는 "설치만 하면 되겠지!"라는 단순한 생각에 설치를 했다가 (늘 그렇듯) 이후 수 많은 삽질을 하는 중이다.

그래서 오늘 내가 만난 삽질은...

내겐 너무 느린 /mnt/C

wsl2을 설치하면 리눅스 시스템이 내 컴퓨터에 깔리는데 이 리눅스는 C드라이브에 있는 폴더에 접근하기 위해서 /mnt 라는 디렉토리에 C 드라이브를 마운트한다. 그래서 /mnt/C/사용자/... 와 같은 방식으로 내 홈 디렉토리를 찾아가야 하는데 이게 매우 매우 매우 느리다.

그리고 나는 wsl 에서 zsh 를 깔아서 oh-my-zsh 로 커스텀해서 쉘을 사용하고 있는데, zsh 의 문제인지 wsl 의 문제인지 몰라도 git 명령어가 먹히는 속도가 상당히 느리다. git switch 로 브랜치를 이동하는 것도 1분 이상 걸렸을 정도다.

('wsl zsh git 속도 느림'과 같은 키워드로 검색해도 비슷한 현상을 겪은 수 많은 글들을 찾아볼 수 있다. 나 또한 관련해서 git config 설정을 해봤지만 드라마틱한 효과는 없었다.)

결국 리눅스 시스템의 홈 디렉토리에 프로젝트 폴더를 올려 제대로 사용을 해보자는 결심으로 /home 디렉토리 내에 사용자 폴더를 만들어 여기에 프로젝트 폴더들을 전부 복사했다.

wsl2 yarn 실행 시 ERROR: spawn ~ EACCES 에러 발생

그런데 폴더를 이동하고 패키지를 설치하기 위해 yarn 명령어를 실행한 후, yarn dev 명령어를 실행하는 순간 에러가 발생했다.

ERROR: spawn /home/ ~ /.yarn/release/yarn-1.22.19.cjs EACCES

일단 자료를 찾아본 결과 EACCES 라는 메시지는 권한 설정과 관련이 있어 보였다. 다양한 상황에서 발생하는 것 같았는데 주로 permission denied라는 메시지와 함께 나타나는 경우가 많은 듯 했다.

리눅스에서 권한 설정을 하려면 chmod 명령어를 입력해주면 된다.

chmod 777 폴더명(파일명)

777 부분은 어떤 권한을 설정해주는지에 대한 옵션인데 man chmod 명령어로 옵션에 대한 설명을 확인할 수 있다. 각 권한 당 숫자 값이 배정되어 있는데 read(4)+write(2)+execute(1) 일단 모든 유저에게 모든 권한을 부여하는 777로 권한을 부여하기로 했다.

그런데 어떤 폴더의 권한 설정이 문제인 걸까, node_modules 폴더의 권한을 변경하라는 글이 있어서 변경해봤으나 동일했고, 프로젝트 폴더의 권한을 변경해도 해결되지 않았다.

해결: 권한 설정

다시 메시지를 읽어보니 /home/ ~ /.yarn/release/yarn-1.22.19.cjs 라는 이 경로의 권한이 문제인 것 같았다. 해당 경로로 가서 yarn-1.22.19.cjs 파일의 권한을 변경했다.

그랬더니 yarn dev 명령어가 실행되면서 문제를 해결할 수 있었다.

그리고 기쁨도 잠시 또 다른 에러를 만나게 되는데... (다음 화에 계속)

profile
Back-End Wep Developer. 꾸준함이 능력이다. Node.js, React.js를 주로 다룹니다.

0개의 댓글