본문 바로가기
유니티

[Unity Linux Server] GLIBC란?

by 유니티세상 2026. 3. 17.
반응형

 

 

1. GLIBC (GNU C Library)

GLIBC는 리눅스에서 가장 기본이 되는 C 표준 라이브러리 구현체이다.

printf()
malloc()
fopen()
pthread_create()

위와 같은 C/C++ 함수들의 실제 구현이 포함되어 있다.


2. 리눅스 프로그램 동작 구조

리눅스 프로그램은 다음과 같은 구조로 동작한다.

 

[Application]
   ↓
GLIBC (표준 라이브러리)
   ↓
Linux Kernel
   ↓
Hardware

프로그램은 운영체제와 직접 통신하지 않고, GLIBC를 통해 시스템 호출을 수행한다.

 

 

  • Application: 우리가 만든 프로그램 (Unity 서버 등)
  • GLIBC: C 표준 라이브러리 (시스템 호출을 쉽게 사용하도록 도와줌)
  • Kernel: 실제 OS 핵심

 


3. Unity Linux 빌드와 GLIBC

Unity는 Linux 빌드를 생성할 때 특정 시스템 라이브러리에 의존하도록 컴파일된다.
하지만 Unity는 공식적으로 “GLIBC 몇 버전”을 요구하는지 명시하지 않는다.

따라서 실행 파일을 분석하여 요구되는 GLIBC 버전을 확인한다.

GLIBC 요구 버전 확인 방법

strings server.x86_64 | grep GLIBC_

또는

ldd --version

실제 사례

실행 시 다음과 같은 에러가 발생했다 .

GLIBC_2.34 not found
GLIBC_2.35 not found

 

이 경우 해당 실행 파일은 최소 GLIBC 2.34~2.35를 요구한다는 의미이다.

유니티 6000.3 버전을 사용하고 있었다.


GLIBC와 OS 매핑

GLIBC 2.28 → Rocky Linux 8.x
GLIBC 2.31 → Ubuntu 20.04
GLIBC 2.35 → Ubuntu 22.04

 

따라서 GLIBC 2.35를 요구한다면 Ubuntu 22.04 환경이 필요하다고 판단할 수 있다.


Unity 버전별 GLIBC 

Unity 버전 GLIBC (대략)
Unity 6 ~2.35
2023 ~2.31 ~ 2.35
2022 LTS ~2.27 ~ 2.31
2021 LTS ~2.17 ~ 2.27

※ 위 값은 추정값이므로 추가 확인하길 바란다.

 

https://docs.unity3d.com/6000.3/Documentation/Manual/embedded-linux-environment-setup.html?utm_source=chatgpt.com

 

 

 

 


4. 리눅스와 배포판 개념

리눅스(Linux)는 우리가 흔히 말하는 “운영체제(OS)”가 아니라
정확히는 운영체제의 핵심인 커널(Kernel)이다.

 

우리가 실제로 사용하는 것은 커널을 포함한 배포판이다.

대표적인 리눅스 배포판은 다음과 같다.

  • Ubuntu
  • Rocky Linux
  • CentOS
  • RHEL

각 배포판은 포함된 라이브러리와 버전이 다르며 GLIBC 버전도 함께 달라진다.

 

커널은 다음과 같은 역할을 한다.

  • CPU, 메모리, 디스크 같은 하드웨어 관리
  • 프로세스 스케줄링
  • 파일 시스템 관리
  • 시스템 호출(System Call) 제공

5. 왜 Ubuntu 22.04를 요구하는가

Unity Linux 빌드는 특정 환경에서 빌드되며 그 환경에 따라 GLIBC 의존성이 결정된다.

예를 들어 실행 파일이 GLIBC 2.35를 요구하는 경우:

Unity Build → GLIBC 2.35 필요
Server → GLIBC 2.28 (Rocky 8.1)

 

이 경우 GLIBC 버전 불일치로 인해 실행이 불가능하다.


6. 해결 방법

이 문제는 GLIBC를 단순 업데이트해서 해결할 수 없다.

GLIBC는 운영체제의 핵심 라이브러리이기 때문에 버전 업그레이드가 제한적이며
수동 업그레이드는 시스템 불안정을 유발할 수 있다.

따라서 다음과 같은 방법을 사용한다.

  • 서버 OS를 Ubuntu 22.04로 변경
  • Docker를 사용하여 Ubuntu 22.04 환경 구성

7. 정리

  • GLIBC는 리눅스에서 표준 함수들을 제공하는 핵심 라이브러리이다.
  • Unity Linux 빌드는 특정 GLIBC 버전에 의존한다.
  • GLIBC 버전이 맞지 않으면 실행이 불가능하다.
  • Unity는 GLIBC 버전을 직접 명시하지 않기 때문에 실행 파일을 통해 확인해야 한다.
  • “리눅스 버전”은 커널이 아니라 Ubuntu, Rocky 같은 배포판을 의미한다.
  • Unity 6 실행 환경은 GLIBC 2.35 기준으로, Ubuntu 22.04와 대응된다.

 

반응형

'유니티' 카테고리의 다른 글

nginx란  (0) 2026.03.17
Unity Linux Server 빌드란  (0) 2026.03.17
프레임을 건너뛴다라는게 무슨말일까?  (0) 2026.03.13
CancellationTokenSource test code  (0) 2026.03.13
Addressables 세팅 방법 및 샘플 코드  (0) 2026.03.12