Miscellaneous

Node.js v0.12.4 Source Code Installation

강철지그·2015년 6월 6일·조회 4,946

1. 사전 정보

Node.js에 대해서는 맑님이 올려주신 /index.php/miscellaneous/250-node-js-1을 읽어보세요.

2. 소스 코드를 이용한 설치

저는 이 Node.js를 소스 코드로 설치하려고 합니다.

물론 https://nodejs.org/download/를 살펴보시면 알 수 있듯이 훨씬 편한 설치 방법도 제공되고 있어요. 운영 환경이나 테스트 목적에 맞게 적절한 방법을 선택하면 됩니다.

아래 예시는 node-v0.12.4.tar.gz를 기준으로 작성한 기록입니다. 최신 버전을 설치하는 경우에는 다운로드 파일명이나 빌드에 필요한 의존성이 달라질 수 있으니, 공식 문서의 안내를 함께 확인하는 것이 좋습니다.

3. configure

node-v0.12.4.tar.gz 파일을 다운로드한 후, 설치하고자 하는 디렉터리를 prefix로 지정하고 configure를 실행합니다.

# ./configure --prefix=/app/nodejs
creating  ./icu_config.gypi
{ 'target_defaults': { 'cflags': [],
                       'default_configuration': 'Release',
                       'defines': [],
                       'include_dirs': [],
                       'libraries': []},
  'variables': { 'clang': 0,
                 'gcc_version': 44,
                 'host_arch': 'x64',
                 'icu_small': 'false',
                 'node_install_npm': 'true',
                 'node_prefix': '/app/nodejs',
                 'node_shared_cares': 'false',
                 'node_shared_http_parser': 'false',
                 'node_shared_libuv': 'false',
                 'node_shared_openssl': 'false',
                 'node_shared_v8': 'false',
                 'node_shared_zlib': 'false',
                 'node_tag': '',
                 'node_use_dtrace': 'false',
                 'node_use_etw': 'false',
                 'node_use_mdb': 'false',
                 'node_use_openssl': 'true',
                 'node_use_perfctr': 'false',
                 'openssl_no_asm': 0,
                 'python': '/usr/bin/python',
                 'target_arch': 'x64',
                 'uv_library': 'static_library',
                 'uv_parent_path': '/deps/uv/',
                 'uv_use_dtrace': 'false',
                 'v8_enable_gdbjit': 0,
                 'v8_enable_i18n_support': 0,
                 'v8_no_strict_aliasing': 1,
                 'v8_optimized_debug': 0,
                 'v8_random_seed': 0,
                 'v8_use_snapshot': 'true',
                 'want_separate_host_toolset': 0}}
creating  ./config.gypi
creating  ./config.mk

4. make 및 설치

이제 make를 실행합니다.

  LINK(target) /app/depot/nodejs-v0.12.4/out/Release/nodejs: Finished
  touch /app/depot/nodejs-v0.12.4/out/Release/obj.target/nodejs_dtrace_header.stamp
  touch /app/depot/nodejs-v0.12.4/out/Release/obj.target/nodejs_dtrace_provider.stamp
  touch /app/depot/nodejs-v0.12.4/out/Release/obj.target/nodejs_dtrace_ustack.stamp
  touch /app/depot/nodejs-v0.12.4/out/Release/obj.target/nodejs_etw.stamp
  touch /app/depot/nodejs-v0.12.4/out/Release/obj.target/nodejs_mdb.stamp
  touch /app/depot/nodejs-v0.12.4/out/Release/obj.target/nodejs_perfctr.stamp
  touch /app/depot/nodejs-v0.12.4/out/Release/obj.target/specialize_node_d.stamp
make[1]: Leaving directory `/app/depot/nodejs-v0.12.4/out'
ln -fs out/Release/nodejs node

make 앞부분은 생략했습니다. 그런데 빌드 시간이 굉장히 오래 걸렸습니다.

make install도 잘 되었고, 출력 내용은 생략하겠습니다. 설치 후에는 지정한 prefix 디렉터리에 파일이 들어갔는지 확인해 봅니다.

# pwd
/app/nodejs
# ls -l
합계 16
drwxr-xr-x 2 root root 4096 2015-06-07 00:16 bin
drwxr-xr-x 3 root root 4096 2015-06-07 00:16 include
drwxr-xr-x 3 root root 4096 2015-06-07 00:16 lib
drwxr-xr-x 4 root root 4096 2015-06-07 00:16 share
#

당연히 실행 파일은 bin 하위에 있겠지요.

# cd bin
# ls -l
합계 15848
-rwxr-xr-x 1 root root 16221824 2015-06-06 23:56 node
lrwxrwxrwx 1 root root       38 2015-06-07 00:16 npm -> ../lib/node_modules/npm/bin/npm-cli.js

설치 확인은 버전 출력으로도 간단히 확인할 수 있습니다.

# ./node -v
# ./npm -v

5. 간단한 실행 테스트

그럼 간단히 테스트 파일을 만들어서 실행해 보겠습니다. 아래 내용을 osinfo.js로 저장합니다.

var os = require('os');

console.log("** os.type = " + os.type());
console.log("** os.platform = " + os.platform());
console.log("** os.arch = " + os.arch());

실행합니다.

# ./node osinfo.js
** os.type = Linux
** os.platform = linux
** os.arch = x64

이렇게 출력되면 소스 코드로 빌드한 Node.js가 정상적으로 실행되는 것입니다.

끝!

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.