티스토리 뷰

반응형

아래 에러로 GLIBC_2.18에 대한 고민에 빠졌다. 알고보니 문제의 발원지가 node에서의 canvas문제였다.

error: /lib64/libc.so.6: version GLIBC_2.18 not found (required by
...(project_dir).../node_modules/_canvas@2.8.0@canvas/build/Release/librsvg-2.so.2)

RPM resource : CentOS 7.x에서는 glibc 2.18 이상을 지원하지 않음.


이 에러에 대해 Troubleshoot가 존재한다.
gcc 버전이나 운영체제 관계없이 canvas의 GLIBC 지원 문제라 한다.

CentOS 7에서 위 에러가 보인다면, canvas의 버전을 2.7.0 이하로 세팅하면 해결된다. 

참고: ⭐ How to Troubleshoot Installation · Issue #1511 · Automattic/node-canvas

 

하지만 에러의 내용이 다음과 같다면,

node: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /lib64/libstdc++.so.6)

 

  • CentOS 8.x로 업그레이드 하거나 Ubuntu, Redhat 등으로 OS를 변경한다.
  • 그래도 안되면 glibc를 업데이트 한다. (단, libc 변경은 OS자체에 심각한 문제가 발생할 수도 있으므로 주의한다.)

 

GLIBC_2.26 설치방법 (at CentOS 7)

$ wget https://ftp.gnu.org/gnu/glibc/glibc-2.26.tar.gz
$ tar xvzf glibc-2.26.tar.gz
$ cd glibc-2.26
$ ../configure --disable-sanity-checks --disable-werror --prefix=/opt/glibc-2.26/
$ make -j4
$ make install

…
$ export LD_LIBRARY_PATH=/opt/glibc-2.26/lib:$LD_LIBRARY_PATH

 

GLIBC_2.18 설치방법 (at CentOS 7)

  1. https://ftp.gnu.org/gnu/glibc/ 에서 다운로드 후, ( https://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz )
  2. tar zxvf glibc-2.18.tar.gz
  3. cd glibc-2.18
  4. mkdir build && cd build
  5. ../configure 해보면 These critical programs are missing or too old: gcc 에러가 나면서 멈춤.
  6. glibc-2.18/configure 의 4712 라인 4.[4-9].* | 4.[1-9][0-9].* | [5-9].* )  10.* ) 로 변경
  7. 다시 ../configure 해보면 msgfmt, makeinfo, autoconf 이것들이 missing 에러. -> yum install msgfmt, makeinfo, autoconf -y 로 해결  이거 안해줘도 돌아가는거 확인
  8. ../configure --prefix=/home/glibc-2.18/build 하면 설치 시작됨.
  9. make && make install
  10. 설치 완료 후 /home/glibc-2.18/build/lib 에 설치되었다고 메시지 뜸.
  11. 여기부터가 중요한데, /lib64/libc.so.6 의 심볼릭 링크가 /home/glibc-2.18/build/lib/libc-2.18.so 를 바라보도록 변경해야 하는데, 이거잘못하면 리눅스시스템 뻑남.

 

반응형
반응형
최근에 달린 댓글