리눅스 GLIBC 개념과 패키지 의존성 문제

GLIBC는 GNU C Library 라는 의미로 리눅스에서 C 언어 프로그램을 실행하기 위한 표준 라이브러리다. 어렵게 생각할 건 없고 리눅스를 이용하기 위해 꼭 필요한 핵심 소프트웨어라고 이해하면 된다.

나도 glibc에 대해 제대로 알고 있는 건 아니고 굳이 이 내용을 세세히 알아야 한다고 생각하진 않는다.

하지만 리눅스에 glibc 패키지라는 게 있고 어떤 버전의 glibc가 설치되어 있는지에 따라 다른 패키지를 설치할 때 영향을 줄 수 있다는 건 알아두는 게 좋다.

1. GLIBC 버전 확인 방법

설치된 glibc 버전을 확인하려면 ldd 버전을 체크하면 된다.

[root@newhost ~]# ldd --version
ldd (GNU libc) 2.17
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
glibc 버전 확인

glibc 2.17 버전이 설치되어 있는 걸 알 수 있다. centos 7 배포판이라 꽤 구버전 glibc다. glibc는 꾸준히 새로운 버전이 개발되고 있다.

2. 패키지 의존성 문제

glibc라는 게 윈도우로 치면 Visual C++ Redistributable 와 비슷한 면이 있다. 많은 패키지들이 glbic의 API를 사용한다. 즉 glibc에 의존적이다.

API라는 건 버전에 따라 있거나 없을 수도 있고 호출 방법이 변경될 수도 있는 거라서 많은 패키지들이 특정 버전의 glibc를 요구한다.

그렇지 않으면 Failed dependencies 에러가 발생한다.

glibc dependency error 발생

ntfs-3g 패키지를 설치하려는데 glibc 버전 에러가 발생하는 걸 볼 수 있다. 최소 2.38 이상이 되어야 한다는 메시지가 보인다.

3. 패키지 의존성 해결

사실 인터넷이 연결된 환경에선 패키지 의존성을 고민할 필요가 별로 없긴 하다. 그냥 yum으로 현재 설치 가능한 패키지 버전을 원격 레포지토리에서 설치하면 되기 때문이다.

yum으로 패키지 설치하는 모습

그러나 폐쇄망에서 운영되는 서버가 많기 때문에 glibc 버전에 따른 의존성 문제가 발생할 수 있는 점을 고려해야 한다.

관련 글

댓글 남기기