내용으로 건너뛰기

glibc 업그레이드 시 오류 발생

0

EC2에서 nvm을 이용하여 node 20버전사용하려고 하니 glibc 오류가 나서 업그레이드를 진행하다 /bin/bash: No such file or directory 문제가 발생하여 콘솔도 접속이 안되고 인스턴스도 시작이 되지 않습니다. 빠른 답변 부탁드립니다.

질문됨 10달 전253회 조회
2개 답변
0

이 문제는 GLIBC 버전 호환성 문제로 인해 발생한 것으로 보입니다. Node.js 20은 GLIBC 2.28 이상의 버전을 요구하지만, Amazon Linux 2는 GLIBC 2.26을 사용합니다. GLIBC를 업그레이드하려다 시스템 파일을 손상시켜 인스턴스에 접근할 수 없게 된 것 같습니다.

이 상황에서 몇 가지 해결 방법을 제안할 수 있습니다:

  1. 인스턴스 복구: 현재 인스턴스가 부팅되지 않으므로, AWS 콘솔에서 인스턴스를 중지하고 시작해보세요. 이 방법으로 해결되지 않으면, 인스턴스의 스냅샷을 생성하고 새 인스턴스를 시작하는 것이 좋습니다.

  2. 대체 접근 방식: 새 인스턴스를 시작한 후, Node.js 20을 직접 설치하는 대신 다음과 같은 대안을 고려해보세요:

    • AWS Lambda 레이어를 사용하여 원하는 GLIBC 버전을 포함하는 사용자 정의 환경을 만듭니다.
    • Docker 컨테이너를 사용하여 Node.js 20을 실행합니다.
  3. NVM 사용 시 주의사항: NVM을 사용할 때는 적절한 프로필 설정이 필요합니다. ~/.bashrc, ~/.bash_profile, 또는 ~/.profile 파일에 NVM 관련 설정을 추가해야 합니다.

향후 이러한 문제를 방지하기 위해, 시스템 라이브러리를 직접 업그레이드하는 대신 컨테이너화된 환경이나 가상 환경을 사용하는 것이 좋습니다. 또한, 중요한 변경을 수행하기 전에 항상 인스턴스의 스냅샷을 생성하여 복구 지점을 만들어두는 것이 안전합니다.

Sources
Update nodejs 16 to nodejs 20 for AWS lambda | AWS re:Post
Lambda execution environment has older version of GLIBC | AWS re:Post
EC2 Userdata install node | AWS re:Post

답변함 10달 전
0

안녕하세요.

glibc 패키지는 리눅스의 여러 패키지 중 거의 코어에 가깝고 이를 개별적으로 업그레이드 하는 것은 불가능에 가깝습니다. 이미 관련 작업을 하시면서 OS의 bash 등 중요 패키지가 손상된 상태로 보여집니다.

새로운 EC2 인스턴스를 생성하시고, 기존에 사용 하시던 EBS 볼륨을 연결하여 소스를 복구하시기 바랍니다. Amazon Linux 2 를 계속 사용하시려면 OS에 직접 설치하지 마시고 컨테이너화 시켜서 OS를 수정하지 않고 사용하시는 방법을 권장 드리겠습니다.

답변함 10달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.