[리눅스] CentOs 6 nodejs/npm 설치 하기
centos6 에서 최신 nodejs 설치하기가 쉽지 않다.
우선 nodejs 를 설치하면 npm은 자동 설치된다.
1. source 설치
-> 실패했다. 절대 안됨. 12시간 하다가 포기
2. binary로 설치( yum(+rpm))
1) yum install -y gcc-c++ make (의존성 패키지 설치)
2) node.js 최신 버전 저장소 설치
-> root) curl -sL https://rpm.nodesource.com/setup_12.x | bash -
root가아닐경우) curl -sL https://rpm.nodesource.com/setup_9.x | sudo -E bash -
3) yum install -y nodejs
-> 실패한다.
이유인 즉슨 centos6에
/usr/lib64/libstdc++.so.6
/usr/lib/libstdc++.so.6
파일의 GLIBC 버전이 하위 버전으로 설치 되어있어서 그렇다.
(확인 : strings /usr/lib/libstdc++.so.6 | grep GLIBC)
nodejs 최신 버전을 위해서는 적어도 GLIBCXX_3.4.18 까진 있어야 한다.
그래서 최신 libstdc++.so.6을 찾아보니, 크롬 설치 버전에서 라이브러리로 제공해준다는 사실을 알았다.
>크롬설치
rpm -ivh http://li.nux.ro/download/nux/dextop/el6/x86_64//chrome-deps-stable-3.11-1.x86_64.rpm
파일경로 : /opt/google/chrome/lib/libstdc++.so.6
있는것을 확인할 수 있다
우선 기존 libstdc++.so.6은 심볼릭 링크로 되어있어서 삭제후에, 방금 구한 파일로 바꾼다
rm -r /usr/lib/libstdc++.so.6
rm -r /usr/lib64/libstdc++.so.6
cp /opt/google/chrome/lib/libstdc++.so.6 /usr/lib/
cp /opt/google/chrome/lib/libstdc++.so.6 /usr/lib64/
다 하고 다시 yum install -y nodejs 를 하면 또 에러 난다
이번엔 /lib64/libc.so.6 (/lib/libc.so.6) 이 파일이 또 문제다
마찬가지로,
strings /lib/libc.so.6 | grep GLIBC
하면 GLIBC_2.12 요 버전이 필요한다. 2.9까지 밖에 없다.
이것 또한 따로 설치해야 하는데, 여러가지 호환성에서 걸려서, 강제로 쉘로 하나 만들어서 설치했다.
vi libc_get.sh
sh libc_get.sh 실행
완료가 되면, 다시
yum install -y nodejs
잘된다..에러가 안났다..
node 버전 확인 : node -v
npm 버전 확인 : npm -v
끝..