오류 대응: node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)

작성일 :

오류 대응: node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)

Tags: 리눅스, 오류

이 오류는 Node.js가 실행되기 위해 필요한 GLIBC 버전이 현재 시스템에 설치된 GLIBC 버전보다 높을 때 발생합니다. 이 문제를 해결하기 위해 다음 방법을 시도할 수 있습니다.

1. 시스템 업데이트

먼저, 시스템의 모든 패키지를 최신 상태로 업데이트합니다. 이 작업은 현재 시스템에 설치된 GLIBC를 포함한 모든 패키지를 업데이트할 수 있습니다.

bash
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

2. GLIBC 업그레이드

GLIBC 업그레이드는 까다로울 수 있으며, 시스템의 안정성에 영향을 줄 수 있습니다. 최신 GLIBC 버전이 필요하다면, 최신 배포판으로 업그레이드하는 것이 좋습니다. 예를 들어, Ubuntu 18.04에서 Ubuntu 20.04로 업그레이드하면 GLIBC 버전도 함께 업그레이드됩니다.

2.1. Ubuntu 배포판 업그레이드

bash
sudo do-release-upgrade

위 명령어를 실행하면 시스템이 최신 LTS 버전으로 업그레이드됩니다. 업그레이드 후, 시스템을 재부팅합니다.

3. NVM을 사용하여 호환되는 Node.js 버전 설치

GLIBC를 업그레이드하는 대신, 호환되는 Node.js 버전을 설치하는 것도 하나의 방법입니다. NVM(Node Version Manager)을 사용하여 호환되는 버전을 설치할 수 있습니다.

3.1. NVM 설치

NVM이 설치되어 있지 않다면, 먼저 NVM을 설치합니다.

bash
curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh> | bash
source ~/.bashrc

3.2. 호환되는 Node.js 버전 설치

NVM을 사용하여 호환되는 Node.js 버전을 설치합니다. 예를 들어, GLIBC 2.27과 호환되는 Node.js 버전은 10.x, 12.x 버전입니다.

bash
nvm install 12
nvm use 12

이제 Node.js를 다시 확인합니다.

bash
node -v
npm -v

4. GLIBC의 수동 업그레이드 (고급 사용자용)

GLIBC를 수동으로 업그레이드하는 것은 복잡하고 위험할 수 있습니다. 시스템 안정성에 영향을 줄 수 있으므로 이 방법은 권장하지 않습니다. 그러나 만약 필요하다면, 아래와 같은 절차를 따를 수 있습니다.

4.1. GLIBC 소스 다운로드 및 빌드

bash
wget <http://ftp.gnu.org/gnu/libc/glibc-2.28.tar.gz>
tar -xzvf glibc-2.28.tar.gz
cd glibc-2.28
mkdir build
cd build
../configure --prefix=/usr/local/glibc-2.28
make -j4
sudo make install

4.2. LD_LIBRARY_PATH 설정

bash
export LD_LIBRARY_PATH=/usr/local/glibc-2.28/lib:$LD_LIBRARY_PATH

이 설정을 영구적으로 유지하려면 ~/.bashrc 또는 ~/.zshrc 파일에 추가합니다.

bash
echo 'export LD_LIBRARY_PATH=/usr/local/glibc-2.28/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

GLIBC 업그레이드 후, Node.js를 다시 실행하여 오류가 해결되었는지 확인합니다.

위의 방법 중 하나를 선택하여 문제를 해결할 수 있습니다. GLIBC 업그레이드는 시스템에 큰 영향을 미칠 수 있으므로 신중하게 접근해야 합니다. NVM을 사용하여 호환되는 Node.js 버전을 사용하는 방법이 가장 안전한 방법일 수 있습니다.