가상머신에 Node.js설치하고 환경설정하기

이전 포스팅에서 VirtualBoxVagrant를 소개하고 설치하는 포스팅을 했었습니다.

이번에는 가상머신 위에 간단하게 Node.js를 설치하고 환경설정을 하는 방법을 포스팅하겠습니다.

NVM (Node Version Manager) 설치하기

NVM은 Node.js를 버전별로 설치하고 관리할 수 있게 도와주는 툴입니다. 그래서 한 시스템 안에 기존버전의 Node.js를 삭제할 필요없이 여러 버전의 Node.js를 쉽게 설치하고 사용할 수 있게 해 줍니다.

주의 할 점은 NPM을 사용하지 않을 경우 Node.js의 root 폴더는 /usr/local/bin/의 한 곳에 설치가 되지만 NVM을 사용하여 설치한 경우는 사용자 별로 NVM 폴더에 버전별로 설치가 됩니다.
예를들면.. /User/junistory/.nvm/versions/node/에 설치가 됩니다.

설치는 ssh로 가상머신에 접속하여 아래와 같이 curl을 이용하여 nvm을 설치합니다.

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.3/install.sh | bash

설치가 완료되면 설치된 것을 인식을 시켜줘야 하는데 2가지 방법이 있습니다.

  1. ssh를 재시작 합니다. logout 후에 다시 ssh로 접속을 합니다.

    $ logout
  2. source 명령어로 .bashrc를 새로 적용시켜 줍니다.

    $ source ~/.bashrc

이제 쉘에서 NVM 명령어를 실행 시킬 수 있습니다.

Node.js 설치하기

NVM을 설치했으면 이번에는 NVM을 이용하여 아래와 같이 Node.js를 설치 하면 됩니다.

  • 최신 버전의 Node.js를 설치합니다.

    $ nvm install node
  • 특정 버전의 Node.js를 설치합니다. 여기서는 v0.12.4 버전을 설치합니다.

    $ nvm install v0.12.4
  • Node.js 설치가 잘 되었는지 버전으로 확인합니다.

    $ node -v

NVM으로 Node.js를 설치한 것에 대한 환경 설정하기

NVM으로 Node.js를 설치 할 경우 그냥 설치한 것과 설치 위치가 달라지기 때문에 sudo 명령어와 함께 npm이나 node명령어가 적용이 되지 않을 경우가 있습니다.
그래서 sudo에 대한 PATH 환경변수를 수정해야 하는데 이 설정은 sudoers 파일을 수정해야 하며 visudo 명령어로 아래와 같이 변경 할 수 있습니다.

sudo 명령어와 관련된 권한을 설정하는 sudoers 파일 수정

sudoers는 sudo와 관련된 설정을 하는 파일 입니다. 이 파일을 수정하기 위해서는 visudo 명령어를 사용하면 됩니다.

$ sudo visudo

sudoers 파일이 열렸으면 아래와 같이 수정합니다.

#######################################
## env_reset를 무효화 처리  
######################################
# Defaults   env_reset
Defaults    !env_reset


######################################
## HOME을 사용할 수 있게 주석 제거 처리
######################################
# Defaults   env_keep += "HOME"
Defaults   env_keep += "HOME"


#######################################
## PATH가 덮어쓰지 않도록 주석처리
#######################################
# Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

간단한 vi 명령어

편집 : 수정할 위치에서 i키 입력 후 수정
저장하고 빠져나오기 : 편집이 완료되면 esc키를 누른 후 :wq를 누름
저장없이 빠저나오기 : esc키를 클릭 후 :q를 누름

Node.js의 글로벌 설치 PATH 설정

NVM으로 Node.js를 설치했다면 npm에 대한 환경변수 인 NODE_PATH에 대한 설정도 해주어야 합니다.

먼저 npm의 root폴더 위치를 확인해야 합니다. root폴더는 npm을 글로벌로 설치할 때 node_modules가 저장되는 위치입니다.
해당 위치가 환경변수에 등록이 되어 있어야 시스템 어디에서든지 해당 node_modules을 참조할 수 있습니다.

npm의 root폴더를 확인하기 위해서 가상머신에서 npm root -g 명령어를 실행 시킵니다.

$ npm root -g
/home/vagrant/.nvm/versions/node/v0.12.4/lib/node_modules

해당 경로를 환경변수에 추가하면 됩니다.

리눅스(CentOS)의 경우 환경변수 설정은 ~/.bash_profile에서 할 수 있습니다.
가상머신이라면 해당파일의 경로는 /home/vagrant/.bash_frofile이므로 해당 파일을 열어서 NODE_PATH를 추가합니다.

$ vi /home/vagrant/.bash_frofile

vi 에디터로 .bash_frofile를 열었으면 문서의 하단에 검색한 경로에 대해 아래와 같이 export NODE_PATH를 추가합니다.

export NODE_PATH=/home/vagrant/.nvm/versions/node/v0.12.4/lib/node_modules

이제 시스템의 어느위치에서든지 node_modules를 참조할 수 있습니다.

간단한 vi 명령어

편집 : 수정할 위치에서 i키 입력 후 수정
저장하고 빠져나오기 : 편집이 완료되면 esc키를 누른 후 :wq를 누름
저장없이 빠저나오기 : esc키를 클릭 후 :q를 누름

git 설치하기

추가로 다양한 오픈소스를 다운받기 위해 git을 아래와 같이 설치합니다.

$ sudo yum install git

Similar Posts

  • CSS로 그럴듯한 버튼효과를 내보자

    별도의 라이브러리를 사용하지 않고 순수하게 CSS3만을 활용하여 버튼의 효과를 줄 수 있습니다. 급하게 퍼블리싱할때 써먹을 수 있게 정리해 놓겠습니다. 미리보기 BUTTON 1 BUTTON 2 BUTTON 3 BUTTON 4 코드설명 HTML HTML은 기본 버튼을 사용하고 .btn으로 기본속성을 지정하고 .hover로 효과의 형태를 변경하겠습니다. <button class=”btn hover1″> BUTTON 1 </button> <button class=”btn hover2″> BUTTON 2 </button> <button class=”btn […]

  • git이란 무엇인가?

    git은 개발자에게는 없어서는 안될 버전관리시스템입니다. SVN이 중앙집중식 버전관리 시스템이라면 git은 분산 버전관리 시스템이라 할 수 있습니다. 이번 포스팅에서는 git에 대한 전체적인 개념에 대해서 작성하려고 합니다. 버전관리시스템이란? https://git-scm.com/book/ko/v2를 찾아보면… 버전 관리 시스템은 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. 라고 정의를 하고 있습니다. 소스코드뿐만이 아니라 그래픽 파일까지도 버전관리를 할 […]

  • [파워포인트] 글꼴 사용에 관한 모든것

    PPT 디자인에 있어 글꼴(폰트)은 상당히 중요한 요소에 속합니다. PPT작업을 멋지게 하고 작업한 결과물을 다른 사람에게 전송을 하면 다른 사람이 디자인을 보고 욕을 할 경우가 있습니다. 그중에 가장 큰 이유는 글꼴(폰트)일 이유가 큽니다. 그래서 PPT의 글꼴(폰트) 사용에 관해서 포스팅을 해보려고 합니다. PPT파일에 글꼴(폰트) 포함하기 PPT도 다양한 폰트를 사용할 수 있습니다. 하지만 나만의 특별한 폰트를 사용했을 경우 […]

  • VisualStudio Code 에디터의 설치와 유용한 확장프로그램(플러그인)

    SublimeText나 Atom에디터등 텍스트기반 에디터가 유행을 하자 MS에서도 Visual Studio를 기반으로 한 텍스트에디터를 출시하였고 다른 에디터들과 마찬가지로 무료로 서비스를 제공하고 있습니다. 저는 Notepadd++, SublimeText, Atom, Brackets, VisualStudioCode 에디터등을 두루두루 써보다가 VisualStudioCode에 정착을 했습니다. 원래는 Notepadd++를 요긴하게 잘 사용해 왔으나 플러그인 등이 부족하고 현재의 유행하는 편리한 기능의 에디터와는 다르기 때문에 좀더 편리한 에디터를 찾고자 했습니다. 그래서 여러가지 […]

  • Angular에서 iframe사용시 unsafe value 에러 해결법

    HTML에서 iframe을 사용할 경우 XSS(Cross Site Scripting) 공격에 대한 방어의 목적으로 SOP( Same Oringin Policy) 정책을 걸어놨습니다. iframe을 이용한 XSS공격은 간단히 설명하면 해커가 어떤 게시판에 글을 작성할때 iframe으로 해킹코드가 있는 문서를 불러오도록 해 놓을 경우 해당 게시물을 열어 보는 대부분의 사용자 정보를 탈취할 수 있게 되는 해킹 기법을 말합니다. 하지만 보안이 검증된 youtube 영상을 불러온다던가 […]

  • 시놀로지 NAS의 Docker로 STRAPI설치하기

    시놀로지 NAS는 개발자에게 축복과도 같은 장비입니다. 일반 사용자처럼 사진의 관리나 파일의 관리를 개인용 클라우드처럼 사용할 수 도 있지만 DSM을 활용한다면 다양한 용도로 사용할 수 있기 때문입니다. 더욱이 Docker을 활용한다면 웬만한 Toy프로젝트나 개발용 프로젝트 정도는 쉽게 구현할 수 있습니다. 이번에 STRAPI라는 오픈소스 프로그램에 흥미가 생겨서 시놀로지의 Docker을 활용하여 설치 해보려고 합니다. STRAPI는 아주 쉽게 Restfull 또는 […]

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다