본문 바로가기
IT 실무/서버 관리

CentOS 환경에 nodejs 설치하기

by 지식id 2015. 12. 22.
반응형

1. node 유저 생성

# useradd -m node

# passwd node


안전하고 원활한 관리를 위해 nodejs의 권한 자체는 별도의 아이디를 만들어서 이양하는 것이 좋다. 설치는 root아이디로 하고 나중에 권한을 변경하도록 한다.


2. nodejs, 뭘 다운 받을 것인가

https://nodejs.org/en/ 에 들어가서 기본적인 릴리즈 정보들을 확인해 본다. 다운로드 전용 URL에 대한 안내도 모두 저 메인 홈페이지에서 확인할 수 있다.

그냥 최신 버전을 다운받을 생각이거나 설치하고자 하는 특정 버전을 정해두었다면

https://nodejs.org/dist/ 로 바로 들어간다. 모든 버전에 대한 다운로드 경로가 있다.

2015년 12월 기준으로 안정버전은 v4.2.3, v5.x.x버전은 지속적으로 업그레이드 중이다. 시기에 따라 다를수도 있지만 보통 사람들이 일반적으로 많이 쓰는 버전과 최신 버전이 공존한다. 최신 버전은 분명 이전 버전에 비해 무언가 개선이 된 것일 테지만 그렇다고 무조건 최신버전을 설치할 필요는 없다. 이제 막 공부를 시작하는 입장에서 최신버전에서 개선된 부분을 제대로 활용할수도 없거니와 최신버전과 구버전의 차이때문에 발생하는 소소한 버그들을 잡는것도 일이다.


dist에 들어가 보면

node-v4.2.3-linux-x86.tar.gz                       03-Dec-2015 21:59            11239877

node-v4.2.3-linux-x86.tar.xz                       03-Dec-2015 21:59             7618732

node-v4.2.3-sunos-x64.tar.gz                       03-Dec-2015 22:05            13426508

node-v4.2.3-sunos-x64.tar.xz                       03-Dec-2015 22:06             8616220

node-v4.2.3-sunos-x86.tar.gz                       03-Dec-2015 21:59            12472695

node-v4.2.3-sunos-x86.tar.xz                       03-Dec-2015 22:00             7996236

node-v4.2.3-x64.msi                                03-Dec-2015 22:13            10227712

node-v4.2.3-x86.msi                                03-Dec-2015 22:09             9310208

node-v4.2.3.pkg                                    03-Dec-2015 22:16            12519586

node-v4.2.3.tar.gz                                 03-Dec-2015 22:17            22482259

node-v4.2.3.tar.xz                                 03-Dec-2015 22:18            12768804


와 같이 같은 버전이더라도 여러가지 패키지들이 존재한다. 뒤에 OS명이 붙은 것들은 각 OS에 맞게 컴파일이 된 것들이고 그냥 node-v4.2.3.tar.gz 라고 된 것은 직접 컴파일을 해서 쓰는 것이다. 직접 컴파일 해서 사용할 경우 세부적인 옵션을 조절할 수 있고 각 시스템이나 리눅스 배포판에 맞게 설정해서 컴파일 할 수 있다. 하지만 대부분의 일반적인 환경에서는 직접 컴파일 하지 않고 컴파일 된 바이너리 패키지를 받아도 무방하다.


3-1. 소스파일을 받아서 컴파일하기


- 다운로드 및 압축풀기

# cd /usr/local/src

# wget http://nodejs.org/dist/v0.8.2/node-v4.2.3.tar.gz

# tar -zxvf node-v0.8.2.tar.gz


어디에 다운받아서 어디에 설치해도 문제가 없다. 하지만 일반적으로 파일을 다운받고 일반적으로 유틸티를 설치하는 곳에 하는게 깔끔하지 않을까? 윈도우에서 파일을 죄다 바탕화면에 다운받아버리고 C:\Program Files가 아닌 이상한데 설치하면 관리가 힘들어지는 것과 마찬가지다.


- 소스 코드 컴파일 및 설치

버전별로 node.js를 관리하기 위해 --prefix 옵션으로 설치 디렉토리를 지정하여 설치


# mkdir -p /usr/local/nodejs/v4.2.3


# cd /usr/local/src/node-v4.2.3

# ./configure --prefix=/usr/local/nodejs/v4.2.3

# make

# make install

# chown node.node /usr/local/nodejs/v4.2.3


이렇게 해서 깔끔하게 설치가 될 수도 있지만 각종 에러가 발생할수도 있다.


./configure

  File "./configure", line 266

    o['default_configuration'] = 'Debug' if options.debug else 'Release'

                                          ^

SyntaxError: invalid syntax


와 같은 에러가 날 경우 python2.6이상을 설치해 준다.


make[1]: g++: Command not found

make[1]: *** [/usr/local/src/node-v4.2.3/out/Release/obj.target/gtest/deps/gtest/src/gtest-death-test.o] Error 127

make[1]: Leaving directory `/usr/local/src/node-v4.2.3/out'

make: *** [node] Error 2


위와 같은 에러가 날 경우 gcc-c++를 설치해 줘야 한다.

[root@linux node-v4.2.3]# yum install gcc-c++

../deps/v8/include/v8.h: In constructor ‘v8::MaybeLocal<T>::MaybeLocal()’:
../deps/v8/include/v8.h:353: error: ‘nullptr’ was not declared in this scope
../deps/v8/include/v8.h: In member function ‘bool v8::MaybeLocal<T>::IsEmpty() const’:
../deps/v8/include/v8.h:360: error: ‘nullptr’ was not declared in this scope
../deps/v8/include/v8.h: In member function ‘bool v8::MaybeLocal<T>::ToLocal(v8::Local<S>*) const’:

위와 같은 에러가 날 경우 gcc를 업그레이드 해줘야 한다. nodejs v4.2.3 기준으로 C++11-capable compiler가 필요하다 g++ 4.8 또는 clang++ 3.4 또는 그 이상의 컴파일러가 필요하다. 업그레이드를 진행한다.

이 외에도 컴파일 하려는 과정 중에 이런저런 에러를 뿌리는 경우가 많다. 그럴때 마다 적절한 구글링을 통해 해결법을 찾아야 할것이다. 머리 아프다면 그냥 컴파일 된 패키지로 다운받아서 사용하자


3-2. 바이너리 파일을 그대로 컴파일하기

- 다운로드 및 압축풀기

# cd /usr/local/src

# wget http://nodejs.org/dist/v0.8.2/node-v4.2.3-linux-x64.tar.gz

# mkdir -p /usr/local/nodejs

# tar -zxvf node-v4.2.3-linux-x64.tar.gz -C /usr/local/nodejs


바이너리 파일을 받을 경우 그냥 압축을 설치과정이 대부분 끝난다. 자신이 사용하는 운영체제에 맞는 패키지를 다운받는다. 서버호스팅이나 웹호스팅을 이용하고 있다면 대부분 linux 64비트일 것이다. 다운 받아서 만들어 놓은 nodejs폴더로 압축을 풀어준다.


# cd /usr/local/nodejs

# mv node-4.2.3-linux-x64 v4.2.4

이름을 좀 더 간단히 바꿔준다. 꼭 필요한 과정은 아니다. 그냥 node-4.2.3-linux-x64폴더 있는 node를 그대로 사용해도 된다. 하지만 이 글에선 v4.2.3, v5.2.1 와 같은 식으로 버전별로 정리를 해 두기 위해 위 과정을 진행한다.


4. 명령어로 만들기


컴파일 및 인스톨이 다 되었다면 /usr/local/nodejs/v4.2.3/bin/ 폴더에 node와 npm이 생겼을 것이다.


- node와 npm을 아무곳에서나 실행 할 수 있도록 소프트링크 설정


# ln -s /usr/local/nodejs/v4.2.3/bin/node /usr/local/bin/node

# ln -s /usr/local/nodejs/v4.2.3/bin/npm /usr/local/bin/npm


# chown -R node.node /usr/local/bin/node


이렇게 해 두면 node아이디로 npm 및 node명령어가 사용가능해 진다.


# node -v


를 통해서 정상적으로 버전이 출력되는지 테스트 해 본다.

정상적으로 동장한다면 websocket, mysql, express, jade 등 필요한 모듈을 설치해 준다. 


# npm install mysql


이렇게만 해 두면 nodejs어플리케이션을 실행시킬 준비는 다 되었다.


끝-




반응형

댓글