node.js로 개발을 하려면 그냥 V8 위에서 알아서 개발할 수도 있지만 node.js로 구축된 좋은 프로젝트나 라이브러리들이 많이 있기 때문에 이런 프로젝트들을 설치해서 사용해야 합니다. node.js 자체도 그렇고 대부분의 프로젝트는 Github에 git clone만 알고 있으면 다운받아서 빌드하고 사용하면 되기는 하지만 버전관리도 있고 불편한게 사실입니다.
이같은 node.js 관련 라이브러리들을 관리하게 편하도록 Isaac Z. Schlueter이 만든 npm이라는 프로젝트가 있습니다. 이름만 보아도 레드햇읜 rpm(Redhat Package Manager)냄새가 많이 나듯이 npm 을 통해서 npm에 등록된 node.js 라이브러리들을 관리해주는 역할을 하고 있습니다.
npm 설치하기
당연히 node.js는 설치되어 있어야 하며 npm이 만들어진지 오래되지 않았기 때문에 최신버전의 node.js 를 쓰기를 권하고 있습니다.
curl http://npmjs.org/install.sh | sh
위 명령어를 사용하면 npm을 설치할 수 있습니다.
npm설치 시도시 위처럼 권한오류가 발생할 경우에는 아래 명령어를 통해서 /usr/local/에 대한 소유권을 사용자에게 줍니다.($USER가 현재 사용자인듯 합니다. 저도 직접 사용자명 안적고 저렇게 적는건 처음 배웠네요.)
sudo chown -R $USER /usr/local
물론 설치자체를 sudo명령어를 통해서 /usr/local에 대한 권한거부가 없게 설치할 수도 있지만 npm은 sudo권한으로 설치하지 말것을 강력하게 권하고 있습니다. node.js로 실행될 script가 어떤 일을 할 수 없기 때문에 sudo로 설치하고 sudo로 npm을 사용하는 것은 자제해야 합니다.
cat >>~/.npmrc <<NPMRC
root = $HOME/.node_libraries
binroot = $HOME/bin
manroot = $HOME/share/man
NPMRC
root = $HOME/.node_libraries
binroot = $HOME/bin
manroot = $HOME/share/man
NPMRC
사용자의 홈디렉토리 밑에 ~/.npmrc파일을 만들어서 위처럼 작성해 놓으면 npm 및 npm으로 설치한 팩키지가 설치될 폴더를 지정할 수 있는듯 합니다. 제가 있는듯 하다고 하는건 제가 npm을 설치할때는 위키에 .npmrc에 대한 언급이 없었기 때문입니다. ㅎ 그냥 설치하니까 저같은 경우는 /usr/local밑에 설치되었습니다. /usr/local밑에 bin, incloud, lib, share/man 폴더로 나누어져서 자동으로 설치가 되었습니다.
이제 /usr/local 폴더에 권한을 준 후에 설치를 시작하면 정상적으로 설치가 완료되는 것을 볼 수 있습니다. (저는 chown 멸령어를 사용할때 $USER 대신 계정명을 사용하였는데 둘다 크게 상관없습니다.)
패키지 관리하기
이제 npm을 설치했으니 npm을 통해서 node.js로 작성된 프로젝트를 관리할 수 있습니다. 최근에 주목받는 프로젝트들은 상당수가 npm으로도 배포가 되고 있고 가이드에도 npm을 통한 설치를 가이드하고 있습니다. 예를 들어 Cloud9 IDE같은 경우는 npm install cloud9로 설치하면 됩니다.
자동으로 /usr/local/bin에 실행파일이 생기기 때문에 아무곳에서나 cloud9 명령어를 입력하면 아래처럼 Cloud9 IDE가 실행되는 것을 볼 수있습니다.(이는 Cloud9 자체가 다른 프로젝트에서 사용하는 용도가 아닌 실행되는 프로젝트이기 때문이고 다른 프로젝트같은 경우는 node.js로 개발하실때 그냥 require()로 불러서 사용할 수 있습니다.)
npm help를 하면 사용할 수 있는 명령어를 볼수 있습니다.
- npm help 명령어 : 명령어에 대한 MAN페이지를 봅니다.
- npm -h 명령어 : 간단한 멸령어에 대한 설명을 봅니다.
- npm list 혹은 npm ls : npm에서 관리되고 있는 프로젝트리스트를 볼 수 있습니다.
- npm install 프로젝트명 : 프로젝트를 설치합니다.
- npm list installed : 현재 설치되어 있는 프로젝트 리스트를 봅니다.
- npm view 프로젝트명 : 프로젝트의 버전별 상세정보 및 maintainer의 정보를 볼 수 있습니다.
- npm update 프로젝트명 : 설치된 프로젝트는 최신버전으로 업데이트 합니다.
간단하게 제가 사용해본 명령어들 입니다. npm을 통해서 패키징해서 배포도 할 수 있고 그외 많은 기능이 있지만 기본적으로 이정도명령어들이면 사용하는데는 큰 불편함은 없을듯 합니다. 아직 써본지 그리 오래되지 않았지만 일일이 저장소 찾아서 내려받아서 하는것보다는 훨씬 편하군요.
nodejs에 관심을 많이 가지고 있는데 감사합니다
전에 말씀드렸던대로 cygwin에서 설치가 안되더라구요 흑흑
이제 Socket 프로그래밍책을 다시 펼쳐야하는건가 고민하고 있어요
ㅋㅋㅋ
인터넷 보면 종종 cygwin관련 글들이 보이긴 하던데 cygwin으로 하면 지속적으로 문제방생을 계속 다뤄줘야해서 너무 피곤해서 신경안쓰고 있어요.. ㅎㅎㅎ 머 플러긴까지 다루실려면 C하셔야 겠지만 사람들이 잘 만들어 놔서 전 다른사람들 만든거만 가져다 쓰고 있어요 ㅎㅎㅎ