1. 설치
node.js를 설치합니다.
오늘 기준으로 v6.11.0 (includes npm 3.10.10) 버전을 설치하겠습니다.
https://nodejs.org/dist/v6.11.0/node-v6.11.0.tar.gz
설치 과정은 Node.js v0.12.4 Source Code Installation (http://sarc.io/index.php/miscellaneous/312) 문서를 참조하세요.
$ ./configure --prefix=/app/node/6.11.0
WARNING: failed to autodetect C++ compiler version (CXX=g++)
WARNING: failed to autodetect C compiler version (CC=gcc)
Node.js configure error: No acceptable C compiler found!
Please make sure you have a C compiler installed on your system and/or
consider adjusting the CC environment variable if you installed
it in a non-standard prefix.
컴파일러 설치가 되어 있지 않은 것 같습니다.
$ yum install gcc-c++
다시 configure를 실행합니다.
$ ./configure --prefix=/app/node/6.11.0
WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++)
creating ./icu_config.gypi
* Using ICU in deps/icu-small
Using version-specific floating patch tools/icu/patches/58/source/i18n/digitlst.cpp
creating ./icu_config.gypi
{ 'target_defaults': { 'cflags': [],
'default_configuration': 'Release',
'defines': [],
'include_dirs': [],
'libraries': []},
'variables': { 'asan': 0,
'coverage': 'false',
'debug_devtools': 'node',
'force_dynamic_crt': 0,
'gas_version': '2.20',
'host_arch': 'x64',
'icu_data_file': 'icudt58l.dat',
'icu_data_in': '../../deps/icu-small/source/data/in/icudt58l.dat',
'icu_endianness': 'l',
'icu_gyp_path': 'tools/icu/icu-generic.gyp',
'icu_locales': 'en,root',
'icu_path': 'deps/icu-small',
'icu_small': 'true',
'icu_ver_major': '58',
'node_byteorder': 'little',
'node_enable_d8': 'false',
'node_enable_v8_vtunejit': 'false',
'node_install_npm': 'true',
'node_module_version': 48,
'node_no_browser_globals': 'false',
'node_prefix': '/app/node/6.11.0',
'node_release_urlbase': '',
'node_shared': 'false',
'node_shared_cares': 'false',
'node_shared_http_parser': 'false',
'node_shared_libuv': 'false',
'node_shared_openssl': 'false',
'node_shared_zlib': 'false',
'node_tag': '',
'node_use_bundled_v8': 'true',
'node_use_dtrace': 'false',
'node_use_etw': 'false',
'node_use_lttng': 'false',
'node_use_openssl': 'true',
'node_use_perfctr': 'false',
'node_use_v8_platform': 'true',
'openssl_fips': '',
'openssl_no_asm': 0,
'shlib_suffix': 'so.48',
'target_arch': 'x64',
'uv_parent_path': '/deps/uv/',
'uv_use_dtrace': 'false',
'v8_enable_gdbjit': 0,
'v8_enable_i18n_support': 1,
'v8_inspector': 'true',
'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
WARNING: warnings were emitted in the configure phase
워닝이 발생했지만 계속 진행해보기로 합니다. make 실행합니다.
make ../deps/v8/src/base/platform/mutex.h:211: error: expected declaration before ‘}’ token make[1]: *** [/app/nodejs/installer/node-v6.11.0/out/Release/obj.target/v8_libplatform/deps/v8/src/libplatform/default-platform.o] Error 1 make[1]: Leaving directory `/app/nodejs/installer/node-v6.11.0/out' make: *** [node] Error 2
역시 configure에서 발생한 오류가 찜찜합니다. 그런데 눈을 크게 뜨고 찾아보니..
WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++)
g++ 버전 문제인 것 같습니다. 이것부터 해결해야 합니다.
2. 기타
위 해결책은 별도 문서로 분리합니다.
C++ (g++) 높은 버전 설치하기 (yum)
http://sarc.io/index.php/miscellaneous/771
그리고 configure, make, make install 설치에 성공하였다는 희소식으로 마무리합니다.
