반응형
1) Unity에서의 서버 빌드 개념
Unity에서 “Linux Server Build”는
- 그래픽 렌더링 없이
- 게임 로직만 실행하는
- Headless 서버 실행 파일
을 만드는 것이다.
2) 특징
Unity Linux Server 빌드는 다음 특징을 가진다.
- GPU 사용 없음 (렌더링 제거)
- 콘솔 기반 실행
- 네트워크 로직 중심 (Mirror, Netcode 등)
- 서버 환경에서 실행 (AWS, IDC 등)
3) 생성되는 결과물
Unity에서 Linux Server로 빌드하면 다음이 생성된다.
server.x86_64
server_Data/
UnityPlayer.so
여기서 중요한 것은:
- server.x86_64 → 실행 파일
- 내부적으로 C/C++로 컴파일된 바이너리
4) 왜 GLIBC 문제가 발생하는가
Unity Linux 빌드는 특정 리눅스 환경에서 컴파일된 네이티브 바이너리이다.
즉 내부적으로 다음과 같은 의존성을 가진다.
server.x86_64
→ GLIBC 2.35 필요
문제 상황
[Unity Build]
→ GLIBC 2.35 요구
[서버]
→ GLIBC 2.28 (Rocky 8.1)
결과:
GLIBC_2.35 not found
실행 불가
5) 왜 이런 일이 발생하는가
GLIBC는 하위 호환은 되지만 상위 호환은 안 된다.
GLIBC 2.35 → 2.28에서 실행 불가
GLIBC 2.28 → 2.35에서 실행 가능
즉,
빌드 환경보다 낮은 서버에서는 실행할 수 없다.
6) Unity Linux Server 빌드 실행 흐름
Unity Editor
↓
Linux Server Build 생성
↓
server.x86_64 업로드
↓
chmod +x server.x86_64
↓
./server.x86_64 실행
↓
Linux Server Build 생성
↓
server.x86_64 업로드
↓
chmod +x server.x86_64
↓
./server.x86_64 실행
7)중요한 포인트
1. Unity는 GLIBC 버전을 직접 지정할 수 없다
- 빌드 타겟에서 GLIBC 선택 불가
2. 서버 환경이 더 중요하다
- Unity 버전보다 서버 OS가 더 큰 영향
3. 해결 방법은 환경 맞추기
- 서버를 Unity 빌드 환경에 맞춘다
8) 정리
- 리눅스는 OS가 아니라 커널이다
- 우리가 사용하는 것은 Ubuntu, Rocky 같은 배포판이다
- Unity Linux Server 빌드는 네이티브 실행 파일이다
- 해당 실행 파일은 특정 GLIBC 버전에 의존한다
- GLIBC 버전이 맞지 않으면 실행할 수 없다
- 해결 방법은 서버 OS를 맞추는 것이다
배포판이란?
커널 + 사용할 수 있게 만든 모든 것
- bash (터미널)
- apt / yum (패키지 관리)
- GLIBC (프로그램 실행)
- 기본 명령어 (ls, cp, vi)
예시)
Windows 커널만 있음
이 상태라면:
- 바탕화면 없음
- 파일 탐색기 없음
- cmd 없음
- 프로그램 실행 못함
그냥 내부 엔진만 있는 상태
우리가 쓰는 건?
Windows OS (완성된 형태)
- 탐색기 있음
- cmd 있음
- 프로그램 실행 가능
리눅스도 동일
Linux Kernel (핵심만 있음)
→ 혼자서는 사용 불가
→ 혼자서는 사용 불가
Ubuntu / Rocky (배포판)
→ 우리가 실제로 쓰는 OS
→ 우리가 실제로 쓰는 OS
https://docs.unity3d.com/6000.3/Documentation/Manual/system-requirements.html#desktop
반응형
'유니티' 카테고리의 다른 글
| unity webgl 모바일 console 확인 방법(ios, android) (0) | 2026.03.23 |
|---|---|
| nginx란 (0) | 2026.03.17 |
| [Unity Linux Server] GLIBC란? (0) | 2026.03.17 |
| 프레임을 건너뛴다라는게 무슨말일까? (0) | 2026.03.13 |
| CancellationTokenSource test code (0) | 2026.03.13 |