1. 사전 정보

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

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

저는 이 Node.js를 Source Code로 설치하려고 합니다.

물론 https://nodejs.org/download/ 를 살펴보시면 알 수 있듯이 굉장히 편한 방법도 제공이 되고 있어요.

적절한 방법을 선택하면 됩니다.

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 시간이 굉장히 오래 걸렸습니다.

make install 도 잘 되었고 내용은 생략하겠습니다.

이제 설치된 디렉토리 구조 확인해 보겠습니다.

# 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 하위에 있겠지요.

# 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

그럼 간단히 테스트 파일을 만들어서 실행해 보겠습니다.

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

끝!