Nodejs 기반의 개발 환경 클린하게 재 구성하기

더팀스(the teams) / 권진 / 조회수 : 17201

다양한 언어 기반으로 개발 환경을 구축하여 만들다보면, 소프트웨어 버전관리 해야할 일이 흔히 생기곤 한다. 특히, 종종 대격변이 있는 버전의 판올림으로인해 충돌이 나거나 심볼릭 링크가 유실되는 경우들이 간혹 있는데 이번에도 그런 케이스였다.

최근 node.js 기반으로 다양한 프로젝트 (vue.js, react.js등)를 진행하다가 이것저것 환경을 만지고 고치다보니 결국 node.js 를 완전히 클린하게 삭제해야 할 일이 생겼다.

아마 이 환경에 결정타를 먹인 것이 OSX 환경에서 El Capitan에서 작업하던 Node.js를 그대로 high sierra로 OSX를 판올림 하면서 퍼미션 권한의 문제가 생긴건지, 노드 패키지 관리나 npm이 정상적으로 동작하지 않으면서 개발환경을 재 설정 할 수 밖에 없게 되었는데, 그 과정에 기름을 부어버리듯 당시에 brew로 설치한 노드가 brew로 삭제가 되지 않는 문제가 발생해버렸다.

결국 환경을 처음부터 재 설치 해야하는 과정을 겪어야했는데 기존에 설치된 다양한 패키지 모듈의 찌꺼기들이 남아서 한방에 클린 설치를 할 수 있는 방법이 없을까 싶어 구글링을 해본 결과 앞서서 수많은 시행착오를 겪은 선배님들의 아주 좋은 작업 방식이 있어서 아래에 방법을 공유해본다.


요세미티에서 nodejs 정리하는 법 [1]

Uninstall nodejs from OSX Yosemite


# 첫번째:

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done

sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*


# 완전히 nodejs + npm 을 날려버리는 방법 :

# /usr/local/lib 경로로 가서 node 와 관련된 노드 모듈을 전부 삭제

cd /usr/local/lib

sudo rm -rf node*


# /usr/local/include 경로로 가서 node 와 관련된 노드 모듈 전부 삭제

cd /usr/local/include

sudo rm -rf node*


# 만약 brew 로 인스톨을 했다면 아래와 같은 방법으로 삭제도 가능함. (저는 아래는 brew자체가 망가졌었는지 판올림으로 인한 권한 문제인지 brew로는 삭제 불가능했음.)

brew uninstall node


# home 디렉토리나 local, lib, include등의 폴더와 관련된 모든 파일은 아래의 경로에 있으니 찾아 들어가서 삭제

cd /usr/local/bin

sudo rm -rf /usr/local/bin/npm

sudo rm -rf /usr/local/bin/node

ls -las


# 아마 혹시 모르니까 클린하게 아래의 명령어도 한번 돌려주자

sudo rm -rf /usr/local/share/man/man1/node.1

sudo rm -rf /usr/local/lib/dtrace/node.d

sudo rm -rf ~/.npm


homebrew를 사용하는 유저들 중에 npm이 제대로 동작하지 않으면 아래와 같은 방법으로도 처방이 가능하다. [2]

rm -rf /usr/local/lib/node_modules

brew uninstall node

brew install node --without-npm

echo prefix=~/.npm-packages >> ~/.npmrc

curl -L https://www.npmjs.com/install.sh | sh


클린하게 설치를 끝나고 react-native를 컴파일하는 과정에서 깃에 관련된 오류가 발생한다면 아래의 방법을 사용해보자. [3]

오류메세지 :

xcrun: error: invalid active developer path

 (/Library/Developer/CommandLineTools), missing xcrun at:

 /Library/Developer/CommandLineTools/usr/bin/xcrun


솔루션 :

xcode-select --install


엘케피탄에서 하이시에라로 osx를 업데이트 하면서 homebrew의 링크가 깨졌다면 아래의 방법으로 다시 붙여준다. [4]

sudo chown -R "$USER":admin /usr/local

sudo chown -R "$USER":admin /Library/Caches/Homebrew

brew link libpng



참고 출처 :

[1] : https://gist.github.com/TonyMtz/d75101d9bdf764c890ef

[2] : https://stackoverflow.com/questions/32893412/command-line-tools-not-working-os-x-el-capitan-macos-sierra-macos-high-sierra

[3] : https://stackoverflow.com/questions/39778607/error-running-react-native-app-from-terminal-ios

[4] : https://github.com/mikepurvis/ros-install-osx/issues/28 


#더팀스 #THETEAMS #풀스택개발자 #Node.js #백엔드 #인사이트 #꿀팁

기업문화 엿볼 때, 더팀스

로그인

/