IM Info
리눅스

불변(Immutable) 리눅스란? Fedora Silverblue로 알아보기

•
kuro editor
•
업데이트
•
4분
불변 리눅스란? Fedora Silverblue

Fedora Silverblue에서는 dnf install 명령으로 시스템 파일을 직접 고치려고 해도 애초에 루트 파일시스템 자체가 읽기 전용이라 명령이 먹히지 않아요. Fedora Silverblue, openSUSE MicroOS, Endless OS까지 최근 몇 년 사이 등장한 데스크톱 배포판들이 약속이라도 한 듯 이 방식을 채택하고 있고요. 시스템을 아예 못 고치게 막아놓고도 어떻게 쓸만한 리눅스가 될 수 있는 걸까요? 불변(Immutable) 리눅스란 정확히 뭘까요?

전통적인 리눅스와는 시스템 수정 방식 자체가 다르다

일반적인 리눅스 배포판은 apt install이나 dnf install 명령으로 시스템 파일을 그 자리에서 직접 수정해요. 패키지를 설치하면 /usr, /etc 등의 디렉터리가 즉시 변경되고, 문제가 생기면 시스템 전체가 불안정해질 수 있어요. 오랫동안 사용한 시스템일수록 “이것저것 설치하고 지우다 보니 알 수 없는 문제가 생겼다”는 경험을 한 번쯤 해봤을 거예요.

Fedora Silverblue는 이 방식을 근본적으로 바꿔요. 루트 파일시스템이 읽기 전용으로 마운트되고, 시스템을 변경할 때마다 새로운 “배포(deployment)“를 통째로 만들어 부팅 시 선택할 수 있게 해요. 이 기술의 핵심이 바로 rpm-ostree와 OSTree예요.

OSTree는 Git처럼 시스템을 관리한다

OSTree는 파일시스템 트리를 Git과 비슷한 방식으로 버전 관리하는 도구예요. 패키지를 추가하거나 시스템을 업데이트하면 기존 상태를 덮어쓰는 게 아니라, 새로운 커밋을 만들 듯 새로운 트리를 생성해요. 그리고 이 새로운 트리는 다음 재부팅 때부터 적용돼요.

가장 큰 장점은 롤백이에요. 업데이트 후 문제가 생기면 부팅 메뉴에서 이전 배포를 선택하기만 하면 즉시 이전 상태로 돌아갈 수 있어요. 전통적인 배포판에서는 이런 수준의 안전한 롤백이 훨씬 번거롭거나 아예 불가능한 경우가 많은데, 이 점에서는 Btrfs 스냅샷으로 시스템 안전망을 만드는 방식과 목표가 비슷하지만 구현 방식은 완전히 달라요.

앱은 세 가지 방식으로 나눠서 설치한다

시스템 자체는 불변이지만 사용자가 앱을 설치하지 못하는 건 아니에요. Silverblue는 용도에 따라 세 가지 방식을 제공해요.

  • Flatpak: GUI 애플리케이션은 기본적으로 Flatpak을 통해 설치해요. 앱이 샌드박스 안에서 격리되어 실행되기 때문에 시스템 파일에 영향을 주지 않아요.
  • rpm-ostree install: 커널 모듈이나 시스템 레벨 도구처럼 Flatpak으로 다루기 어려운 패키지는 rpm-ostree install 명령으로 다음 배포에 포함시킬 수 있어요. 다만 이 방식은 재부팅이 필요해요.
  • Toolbox / Distrobox: 개발 환경처럼 시스템과 분리된 컨테이너가 필요할 때는 Toolbox를 이용해 별도의 컨테이너에서 필요한 패키지를 자유롭게 설치할 수 있어요. 이런 컨테이너 기반 격리 방식은 컨테이너 전용 호스트 OS들이 애초에 지향하는 구조와도 맞닿아 있어요.

실제로 써보면 체감되는 것들이 있다

처음에는 “패키지 하나 설치하는데 왜 재부팅이 필요하지?”라는 생각이 들 수 있어요. 하지만 익숙해지면 오히려 시스템이 훨씬 예측 가능해진다는 걸 체감하게 돼요. 시스템 업데이트로 인한 사고가 거의 없고, 문제가 생겨도 되돌리기가 쉬워서 마음 편하게 최신 업데이트를 받을 수 있어요.

개발 환경 구성도 Toolbox 덕분에 오히려 더 깔끔해져요. 프로젝트마다 다른 컨테이너를 만들어 필요한 라이브러리 버전을 격리할 수 있어서, “이 프로젝트 때문에 설치한 패키지가 다른 프로젝트와 충돌한다”는 전통적인 문제에서 자유로워져요.

누구에게 맞는 방식일까

불변 리눅스는 아직 국내에서는 생소하지만, 다음과 같은 사용자에게 특히 잘 맞아요.

  • 시스템이 망가지는 스트레스를 줄이고 싶은 사용자: 롤백이 항상 보장되어 있어서 업데이트를 겁내지 않고 받을 수 있어요.
  • 여러 프로젝트를 컨테이너로 격리해서 개발하는 개발자: Toolbox로 프로젝트별 환경을 완전히 분리할 수 있어요.
  • 최신 업데이트를 받으면서도 안정성을 포기하고 싶지 않은 사용자: 새 배포가 문제를 일으켜도 이전 배포로 즉시 돌아갈 수 있어요.

반대로 시스템 파일을 자유롭게 직접 수정하며 커스터마이징하는 걸 즐기는 사용자에게는 다소 답답하게 느껴질 수 있어요. 최신 기술을 가장 먼저 받아보는 걸 좋아한다면 Fedora Workstation 같은 전통적인 에디션이 더 맞을 수도 있고요. 하지만 한 번 이 패러다임에 익숙해지면, 왜 점점 더 많은 배포판이 불변 방식을 채택하는지 이해하게 될 거예요.

자주 묻는 질문

Q1. 불변 리눅스에서는 앱 설치가 아예 안 되나요?

아니요, GUI 앱은 Flatpak으로, 시스템 레벨 도구는 rpm-ostree install로 설치할 수 있고, 개발 환경은 Toolbox 컨테이너에서 자유롭게 구성할 수 있어요.

Q2. 업데이트 후 문제가 생기면 어떻게 되돌리나요?

부팅 메뉴에서 이전 배포(deployment)를 선택하기만 하면 즉시 이전 상태로 돌아갈 수 있어요.

Q3. 패키지 하나 설치하는데 왜 재부팅이 필요한가요?

rpm-ostree install로 설치한 시스템 레벨 패키지는 새로운 배포로 만들어지고, 이 배포는 다음 재부팅부터 적용되는 구조라서 그래요.

Q4. 개발 환경은 어떻게 격리하나요?

Toolbox나 Distrobox로 프로젝트마다 별도 컨테이너를 만들어 필요한 라이브러리 버전을 서로 충돌 없이 격리할 수 있어요.

Q5. 어떤 사람에게 잘 맞나요?

시스템이 망가지는 스트레스를 줄이고 싶은 사용자, 여러 프로젝트를 컨테이너로 격리해 개발하는 개발자에게 특히 잘 맞아요.

k
kuro editor 자료 조사하고 분석하고 글을 읽기 쉽게 작성합니다
프로필

댓글

첫 번째 댓글을 남겨보세요!