Linux / 리눅스 배포판 종류와 버전 확인하는 방법
현재 사용 중인 리눅스 배포판과 버전은 먼저 cat /etc/os-release로 확인하는 것이 좋습니다. 이 파일의 PRETTY_NAME은 사람이 읽기 좋은 전체 이름을, ID와 VERSION_ID는 스크립트에서 활용하기 좋은 배포판 식별자와 버전을 보여 줍니다.
hostnamectl은 배포판·커널·아키텍처를 한 화면에서 확인할 때 편리하고, uname -r은 배포판 버전이 아니라 현재 실행 중인 리눅스 커널 버전을 확인할 때 사용합니다. 세 정보는 서로 의미가 다르므로 목적에 맞게 구분해야 합니다.
가장 먼저 실행할 명령
배포판 이름과 버전만 빠르게 확인하려면 다음 명령이면 충분합니다.
cat /etc/os-release
필요한 정보만 간단히 보고 싶다면 다음처럼 출력할 수 있습니다.
grep -E '^(PRETTY_NAME|ID|VERSION_ID|ID_LIKE)=' /etc/os-release
배포판, 커널과 CPU 아키텍처를 함께 점검할 때는 아래 명령을 차례로 실행합니다.
cat /etc/os-release hostnamectl uname -r uname -m
리눅스 배포판이란?
리눅스(Linux)는 엄밀히 말하면 운영체제의 핵심인 커널을 가리킵니다. 리눅스 배포판(Linux distribution)은 리눅스 커널에 시스템 도구, 라이브러리, 패키지 관리자, 설치 프로그램과 기본 설정을 조합해 실제로 사용할 수 있게 만든 운영체제입니다.
Ubuntu, Debian, Fedora, Rocky Linux, openSUSE와 Arch Linux는 모두 리눅스 커널을 사용하지만 패키지 형식, 업데이트 정책과 관리 명령이 서로 다릅니다. 따라서 프로그램 설치법이나 서버 설정 문서를 적용하기 전에 배포판 계열과 버전을 확인해야 합니다.
| 주요 계열 | 대표적인 배포판 | 패키지 형식·도구 | 확인할 값 |
|---|---|---|---|
| Debian 계열 | Debian, Ubuntu, Linux Mint | DEB, APT | ID, ID_LIKE=debian |
| Red Hat 계열 | RHEL, Fedora, Rocky Linux, AlmaLinux | RPM, DNF | ID, ID_LIKE의 rhel·fedora 계열 값 |
| SUSE 계열 | openSUSE, SUSE Linux Enterprise | RPM, Zypper | ID, ID_LIKE=suse |
| Arch 계열 | Arch Linux, Manjaro | pkg.tar.zst, Pacman | ID, ID_LIKE=arch |
| 독립 계열 | Alpine Linux 등 | 배포판별로 다름 | ID와 공식 문서 |
ID_LIKE는 해당 배포판과 비슷한 상위 계열을 알려 주는 보조 정보입니다. 값이 없을 수도 있으므로 실제 배포판을 구분할 때는 ID를 먼저 확인하고, 호환 계열이 필요할 때 ID_LIKE를 참고하는 편이 안전합니다.
/etc/os-release에서 배포판과 버전 확인
/etc/os-release는 운영체제 식별 정보를 환경 변수와 비슷한 키=값 형식으로 제공합니다. systemd의 os-release 공식 문서에 따르면 /etc/os-release가 있으면 이 파일을 우선 사용하고, 없을 때 /usr/lib/os-release를 확인합니다.
전체 정보 확인하기
cat /etc/os-release
출력 형식은 배포판마다 조금씩 다르지만 일반적으로 다음과 같은 값을 볼 수 있습니다.
PRETTY_NAME="Ubuntu 24.04 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION_CODENAME=noble ID=ubuntu ID_LIKE=debian
위 결과라면 배포판은 Ubuntu이고 주요 버전은 24.04이며 Debian 계열임을 알 수 있습니다. 패치 버전이나 세부 표시는 시스템의 업데이트 상태에 따라 달라질 수 있습니다.
각 필드의 의미
| 필드 | 의미 | 주요 용도 |
|---|---|---|
PRETTY_NAME |
사람이 읽기 쉬운 전체 배포판 이름 | 화면 표시와 수동 확인 |
NAME |
버전을 제외한 운영체제 이름 | 설명용 이름 표시 |
ID |
소문자로 된 배포판 식별자 | 스크립트의 배포판 분기 |
VERSION_ID |
기계가 비교하기 쉬운 배포판 버전 | 지원 버전 검사 |
ID_LIKE |
호환되는 상위 배포판 계열 | 패키지·설정 방식의 계열 판단 |
VERSION_CODENAME |
배포판 버전의 코드명 | 저장소 설정과 문서 확인 |
롤링 릴리스처럼 고정된 주요 버전을 사용하지 않는 배포판은 VERSION_ID가 없을 수 있습니다. 값이 비어 있다고 해서 파일이 잘못된 것은 아닙니다.
hostnamectl로 시스템 정보를 한 번에 확인
systemd를 사용하는 배포판에서는 hostnamectl로 호스트 이름, 배포판, 커널과 CPU 아키텍처를 한 화면에서 볼 수 있습니다.
hostnamectl
출력에서 주로 확인할 항목은 다음과 같습니다.
- Operating System: 배포판 이름과 버전
- Kernel: 현재 실행 중인 커널 릴리스
- Architecture: 시스템 아키텍처
- Virtualization: 가상 머신이나 컨테이너로 인식된 환경
hostnamectl은 보기 편한 요약 명령이지만 최소 설치 환경, 일부 컨테이너 또는 systemd를 사용하지 않는 배포판에는 없을 수 있습니다. 이런 환경에서는 /etc/os-release와 uname을 사용하면 됩니다.
배포판 버전과 커널 버전은 다르다
uname이 보여 주는 값은 Ubuntu 24.04나 Rocky Linux 10 같은 배포판 버전이 아닙니다. 현재 부팅되어 실행 중인 커널의 이름, 릴리스와 하드웨어 아키텍처입니다.
uname -r uname -m uname -a
| 명령 | 확인하는 정보 | 사용 예 |
|---|---|---|
uname -r |
커널 릴리스 | 드라이버·커널 모듈 호환성 확인 |
uname -m |
하드웨어 아키텍처 | x86_64·aarch64용 패키지 선택 |
uname -a |
커널 관련 정보를 한 줄로 표시 | 장애 보고용 시스템 요약 |
예를 들어 배포판을 유지한 채 커널만 업데이트할 수 있고, 같은 배포판 버전이라도 실행 중인 커널은 서로 다를 수 있습니다. 커널 업데이트 후 재부팅하지 않았다면 설치된 최신 커널과 uname -r의 결과가 다를 수도 있습니다. 각 옵션의 정의는 GNU Coreutils의 uname 문서에서 확인할 수 있습니다.
다른 확인 방법과 구형 환경 대처
lsb_release 명령
lsb_release가 설치되어 있다면 배포판 공급자, 설명, 릴리스와 코드명을 확인할 수 있습니다.
lsb_release -a
다만 모든 배포판의 최소 설치 환경에 기본으로 포함되는 명령은 아닙니다. command -v lsb_release로 존재 여부를 먼저 확인할 수 있습니다. Linux Standard Base의 lsb_release 명세에는 각 출력 항목의 의미가 정리되어 있습니다.
배포판별 release 파일
/etc/os-release가 없는 오래된 시스템에서는 배포판별 파일을 보조 수단으로 확인할 수 있습니다.
cat /etc/redhat-release cat /etc/debian_version cat /etc/alpine-release
이 파일들은 배포판마다 존재 여부와 형식이 다릅니다. 자동화에서는 무작정 /etc/*release를 합쳐 읽기보다 /etc/os-release를 우선하고, 필요한 배포판의 파일만 명시적으로 확인하는 것이 좋습니다.
셸 스크립트에서 배포판 판별하기
설치 스크립트나 운영 자동화에서는 사람이 읽기 위한 PRETTY_NAME보다 ID와 VERSION_ID를 사용하는 편이 안정적입니다.
if [ -r /etc/os-release ]; then
. /etc/os-release
printf 'distribution=%s\n' "$ID"
printf 'version=%s\n' "${VERSION_ID:-unknown}"
printf 'family=%s\n' "${ID_LIKE:-unknown}"
else
printf 'distribution=unknown\n'
uname -srm
fi
${VERSION_ID:-unknown} 형식은 값이 없거나 비어 있을 때 unknown을 사용합니다. os-release에는 선택 필드가 많고 배포판이 자체 필드를 추가할 수도 있으므로, 스크립트는 필요한 값이 항상 존재한다고 가정하지 않아야 합니다.
배포판에 따라 패키지 설치 명령을 나눌 때는 버전 문자열보다 ID를 먼저 비교하고 ID_LIKE를 보조 조건으로 사용합니다. 그래도 배포판마다 저장소 구성과 패키지 이름이 다를 수 있으므로, 계열이 같다는 이유만으로 모든 명령이 호환된다고 단정해서는 안 됩니다.
컨테이너·WSL·chroot에서 주의할 점
컨테이너
컨테이너 안의 /etc/os-release는 일반적으로 호스트가 아니라 컨테이너 이미지의 사용자 공간 배포판을 나타냅니다. 반면 uname -r은 호스트와 공유하는 커널 정보를 보여 줄 수 있습니다. 두 명령의 결과가 서로 다른 계열처럼 보이는 것은 정상일 수 있습니다.
Windows Subsystem for Linux
WSL(Windows Subsystem for Linux)에서는 /etc/os-release가 설치한 Ubuntu, Debian 등의 배포판 정보를 보여 줍니다. uname -r에는 WSL용 커널임을 나타내는 문자열이 포함될 수 있으므로, 배포판 버전을 찾을 때는 여전히 /etc/os-release를 기준으로 봅니다.
chroot 환경
chroot 안에서는 /etc/os-release가 chroot 파일 시스템의 배포판을, uname은 현재 시스템에서 공유하는 커널을 나타냅니다. 복구 작업이나 교차 배포판 빌드 환경에서는 이 차이를 알고 결과를 해석해야 합니다.
자주 묻는 질문
리눅스 버전을 확인하는 가장 확실한 명령은 무엇인가요?
배포판과 버전을 확인하는 목적이라면 cat /etc/os-release를 먼저 사용합니다. 커널 버전은 uname -r, CPU 아키텍처는 uname -m으로 별도로 확인합니다.
hostnamectl이 없거나 실행되지 않으면 문제가 있나요?
반드시 문제인 것은 아닙니다. systemd를 사용하지 않거나 필요한 구성 요소가 빠진 최소 환경에서는 hostnamectl이 없을 수 있습니다. /etc/os-release와 uname으로 필요한 정보를 나누어 확인하면 됩니다.
CentOS, Rocky Linux와 AlmaLinux는 어떻게 구분하나요?
/etc/os-release의 ID를 확인하면 각각의 배포판을 구분할 수 있습니다. 이들은 같은 계열의 관리 방식을 공유하는 부분이 있지만 지원 정책과 저장소는 별개이므로 ID_LIKE만 보고 동일한 배포판으로 처리하면 안 됩니다.
x86_64와 aarch64는 배포판 버전인가요?
아닙니다. 두 값은 하드웨어 아키텍처를 나타냅니다. 같은 배포판과 버전이라도 x86_64용 이미지와 ARM 64비트 계열인 aarch64용 이미지가 따로 제공될 수 있으므로 프로그램이나 설치 이미지를 선택할 때 함께 확인해야 합니다.
정리
리눅스 배포판 이름과 버전은 /etc/os-release에서 확인하고, 시스템 전체 요약이 필요하면 hostnamectl을 사용합니다. 커널 버전과 아키텍처는 각각 uname -r과 uname -m으로 확인합니다.
특히 자동화에서는 PRETTY_NAME을 문자열로 분석하기보다 ID, VERSION_ID와 필요할 때 ID_LIKE를 사용해야 합니다. 컨테이너, WSL과 chroot에서는 사용자 공간의 배포판과 실행 중인 커널이 서로 다른 출처의 정보일 수 있다는 점도 함께 기억해 두면 됩니다.









