VSCode에서 개발을 하다 보면 종종 Error: EPERM: operation not permitted...
오류가 발생한다. 그러면 VSCode를 관리자 권한으로 실행하거나 npm 캐시를 제거하는 등의 해결책을 많이들 제시한다. 나의 경우, 라이브러리를 설치할 때마다 EPERM 오류가 발생해서 해결을 하고 넘어가야겠다고 생각했다.
EPERM은 Error PERMission
의 약자로, 운영체제 수준에서 허가되지 않은 작업을 시도하는 경우 반환되는 표준 에러 코드(errno 1)이다. 즉, 권한 문제로 발생하는 문제이다.
주로 언제 발생할까?
권한 문제가 파일 시스템과도 연관이 있는 것을 확인하고, 외장 SSD를 사용하고 있다는 점을 고려해서 이 부분을 살펴보았다.
나는 삼성의 외장 SSD인 Samsung Portable SSD T7 Shield
를 사용하고 있다 (광고 아님). 그리고 초기 파일 시스템은 exFAT
으로 설정되어 있었다.
Windows에서 ACL 미지원 때문에 VSCode에서 패키지 매니저가 파일을 쓰거나 조작할 때 권한 문제가 발생한 것으로 보인다.
나는 데스크탑과 노트북 환경을 왔다 갔다 하면서 작업하기 때문에 외장 SSD 사용이 필요하다. 또한, 윈도우만 사용하기 때문에 NTFS 파일 시스템을 사용해도 호환성에 문제가 생길 일은 없었다.
exFAT 기반의 SSD를 NTFS 파일 시스템으로 포맷하기로 결정했다!
열심히 백업을 해준다. 이때 용량이 꽤 많기 때문에 SSD를 사용하는 C 드라이브로 백업했다.
포맷하면 삼성에서 제공하는 Portable SSD Software
가 함께 날아갈 것이기 때문에 이를 다운로드 하려 했는데 찾을 수 없었다. 알고 보니 외장 SSD 전용 소프트웨어는 없어지고 기기의 모든 메모리를 한 번에 관리할 수 있는 Magician 소프트웨어가 새로 나왔다.
그래서 마음 놓고 포맷했다.
포맷 후 잘 인식되고 잠금 설정도 되는 것을 확인했다.
테스트 삼아서 VSCode에 라이브러리를 설치하고 삭제해 보았다.
(TMI: fe-custom-modal
은 내가 직접 만든 모달 라이브러리이다)
이전에는 계속 발생했던 EPERM 오류가 뜨지 않았다. 검증 차원에서 2번 정도 더 설치 삭제를 반복했는데도 안 떴다. 성공이다😊
EPERM 뿐만 아니라 라이브러리 설치/삭제 시 Linking dependencies
단계에서 시간이 너무 오래 걸리는 문제도 있었다. 간단한 라이브러리 하나 설치하는데도 2분 가까이 걸렸는데, 이번에 SSD의 파일 시스템을 바꾸고 나니 약 19초로 시간도 대폭 단축되었다.
삭제할 때도 약 2초만에 끝났다.
개발 도중에 계속 문제를 일으켜서 작업 피로감도 상당했는데, 이 문제가 해결되어 너무 기쁘다. 별 것 아닌 작업이지만 개발 환경을 개선해서 뿌듯하다. Windows 환경에서 외장 SSD를 사용해서 개발하는 사람이라면 한 번쯤 겪을 수 있는 문제인데, 이 글이 도움이 될 수 있으면 좋겠다.
fe-custom-modal 이거 진짜 써요>??????? 2분이면 진짜 불편했겠다..... 해결해서 다행이에여😎👏👏👏