node.js 에서도 java API 호출을 위한 java 모듈을 제공하고 있다.
install 자체는 간단하다.
npm install java
을 하면 되는데.. 이와 관련된 삽질 및 이슈를 정리합니다.ㅠㅠ
npm install java를 하기 전에 우선적으로 설치해야 할 모듈은
npm install node-gyp
이 모듈이 나를 정말로 속썩이게 했다.
node-gyp 는 의존성이 강해서, python과 gcc 버전에 민감하다. (node.js 자체도 민감)
python은 3.x가 아닌 2.x가 필요하다.
https://ice2732.wordpress.com/2016/01/26/centos-6-4-gcc-4-8-2/ 관련 내용이 있는 포스팅이다.
https://www.npmjs.com/package/java
이슈 1
Error: `make` failed with exit code: 2
위 이슈가 발생하는 이유는,
해당 os에 설치된 gcc 버전이 낮아서 그렇다.
https://github.com/node-inspector/node-inspector/issues/753
깃허브에 올라온 내용을 확인해보면, gcc 버전을 4.8 보다 높은 버전이여야 한다.
나 역시도 4.4.1 이여서 해당 오류가 났었다.
최근 버전을 보면
https://gcc.gnu.org/gcc-6/
6.5 까지 나와있는것을 확인할 수 있다..
gcc를 재설치를 하고
https://sarc.io/index.php/miscellaneous/771-c-g-yum
https://stackoverflow.com/questions/36327805/how-to-install-gcc-5-3-with-yum-on-centos-7-2
yum install을 이용하여 설치하는 방법
http://wyseburn.tistory.com/entry/GCC-47-%EC%9D%B4%EC%83%81-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B0%A9%EB%B2%95
https://centos.pkgs.org/6/centos-sclo-rh/devtoolset-6-gcc-6.3.1-3.1.el6.x86_64.rpm.html
gcc -v 으로 확인하여 버전이 업그레이드 되었는지 확인한다.
gcc 설치 했는데도 버전이 그대로 일 경우,
1.
./bashrc 나 ./bash_profile 을 열어서
GCC_PATH=/opt/rh/devtoolset-3/root/usr/bin/gcc
ATH=$GCC_PATH:$PATH
등 gcc 변수를 등록해준다.
이렇게 해도 안될 경우에는
2.
/usr/bin 에 기존에 있는 gcc 가 먼저 인식 되서이므로
mv gcc gcc.back 등으로 바꿔둔뒤
ln -s /opt/rh/devtoolset-3/root/usr/bin/gcc /usr/bin/
으로 심볼릭링크 걸어주시고 다시 버전을 확인해보면 정상적으로 적용이 되어 있습니다
https://kldp.org/node/79559
이슈 2.
/usr/bin/ld: cannot find -ljvm
위 문제를 해결 했더니, 다음 난관이 등장했다. ㅜㅜ
위 이슈는 ljvm을 찾을 수 없다는 건데
gcc 버전을 더 올려야 하거나 ( node 버전이 높은 경우 )
ljvm 파일을 심볼릭 링크를 통해 설정해주어야 한다.
/usr/local/lib/에 들어가서 libjvm.so 의 파일이 있는지 확인 해보고
없을 경우 직접 jdk 디렉토리를 찾아 연결 해줘야 한다.
필자의 경우, 서버 이관 문제로 jdk도 생각없이 scp 로 복사해두었다가,
해당 파일이 문제되는걸 찾지 못했다.
ln -s /data/yj/jdk8/jdk1.8.0_131/jre/lib/i386/server/libjvm.so libjvm.so
으로 했는데, 여전히 같은 에러가 발생했다.
알고보니, jdk 설치 당시 i386 버전이 아니라 다른 버전을 설치했어야 했다ㅠㅠ
jdk 설치를 다시 하여
ln -s /data/yj/jdk1.8.0_131/jre/lib/amd64/server/libjvm.so libjvm.so
로 해결할 수 있었다.
https://github.com/HyukjinKwon/hadoop-snappy/issues/2
'배우고 있습니다 > Node.js 개발' 카테고리의 다른 글
[node.js 활용기] 웹 크롤링 준비 (1) 기본편 (0) | 2018.12.11 |
---|---|
[Node.js 개발일지] node.js에서 curl 처리 (ajax/request) (3) | 2018.12.06 |
[Node.js 개발일지] node.js 전역 변수, global 사용 (0) | 2018.12.06 |
[Node.js 개발일지] node js 버전 번경 (업그레이드) (0) | 2018.12.06 |
[Node.js] npm ERR! Error: CERT_UNTRUSTED (0) | 2018.12.04 |