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-ostreeOSTree예요.

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 자료 조사하고 분석하고 글을 읽기 쉽게 작성합니다
프로필

댓글

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