Bootable 컨테이너 시대, 리눅스 테마 꾸미기의 즐거움

6 days ago 2

  • bootc와 부팅 가능한 컨테이너 덕분에 테마 변경이 더 안전하고 관리 가능한 방식으로 가능해짐
  • /usr를 컨테이너로 정의하고 롤백 가능하므로 시스템을 쉽게 실험하고 되돌릴 수 있음
  • ostree admin unlock 명령으로 재부팅 없이도 일시적인 커스터마이징이 가능함
  • Blue95 같은 프로젝트는 배포판과 컨테이너의 경계가 모호해진 시대를 반영함
  • 부팅 가능한 컨테이너를 통해 개인의 창의적 표현을 실현할 수 있음

Linux 테마 커스터마이징의 즐거움

  • 수십 년 동안 다양한 데스크탑 환경과 테마 설정에 관심을 가졌음
    • Xfce, LXQt, Sway 등을 설치하고 패널, 런처, 사운드, 폰트, 테마 등을 사용자화함
    • 초기에는 쉘 스크립트를 사용하다가 Ansible 플레이북으로 발전함
    • /usr 디렉터리를 수정해야 하는 시스템 전역 변경도 포함되었음
  • 하지만, 시간이 지나면서 자주 깨지거나 사라지는 패널, 작동하지 않는 런처 등의 문제로 인해 기본 설정으로 되돌아가는 선택을 하게 되었음
  • GNOME, KDE 같은 현대적인 데스크탑 환경은 이미 잘 만들어져 있어 기본 상태도 충분히 만족스러움
  • 그럼에도 불구하고 커스터마이징 욕구는 사라지지 않았음, 그러던 중 bootc 개념을 접하게 됨

Bootc는 테마 제작자의 놀이터

  • bootc는 Red Hat이 개발한 부팅 가능한 컨테이너 시스템
  • 컨테이너 기반으로 운영체제를 정의하고 배포할 수 있음 FROM quay.io/fedora/fedora-bootc:42 RUN dnf install -y my-custom-theme my-custom-fonts my-custom-panel
  • podman과 bootc 명령어로 이미지 빌드 및 시스템 스위칭 가능: sudo podman build -f Containerfile -t my-fedora sudo bootc switch --transport containers-storage localhost/my-fedora:latest
  • /usr는 읽기 전용이며, 컨테이너를 이전 상태로 쉽게 롤백 가능
  • 새로운 테마 아이디어를 실험하는 데 최적화된 방식
  • 실패하거나 마음에 들지 않으면 간단히 이전 상태로 복구 가능

Development Mode (ostree admin unlock)

  • 재부팅 없이 /usr를 임시 수정할 수 있는 모드
  • 성공 시 Containerfile에 반영, 실패 시 단순 재부팅으로 변경 내용 제거 가능
  • 일반적인 리눅스 환경에서 축적되는 찌꺼기가 거의 생기지 않는 장점 존재

대체 방법들과의 비교

  • Ansible이나 쉘 스크립트: 재현성과 복구에 한계 있음
  • systemd-sysext: /usr 오버레이 이미지 사용 가능하지만 생태계 미성숙
  • Nix: 학습 비용이 매우 높음

결론적으로 bootc는 안전성, 유연성, 도구 지원 면에서 가장 강력한 접근법
잘못된 변경이 있어도 롤백이 쉬워 /usr를 망가뜨릴 걱정 없음

"배포판"이란 무엇인가?

  • Blue95는 Fedora Xfce 기반의 커스터마이징된 OCI 이미지
  • Hacker News에서 소개되며 "단순한 테마인데 배포판이 필요한가?" 라는 질문 제기됨

배포판의 정의는 흐려짐

  • 기존에는 배포판을 만드는 일이 매우 복잡하고 시간이 많이 드는 일이었음
  • 이제는 Containerfile + CI/CD 파이프라인만으로 유사한 결과를 쉽게 만들 수 있음
  • Blue95는 GitHub Actions로 자동 빌드되어 OCI 레지스트리에 배포됨
  • 단순한 Fedora 베이스 컨테이너를 배포판으로 보는 기준은 모호함

기존 사례와 비교

  • Bluefin, Bazzite 같은 bootc 기반 프로젝트도 배포판으로 간주되곤 함
  • 실제 사용 경험은 기존 Fedora와는 확연히 다름
  • 기존 정의로는 배포판의 의미를 설명하기 어려워짐
    • "딱 보면 알지" 정도의 정성적 기준이 유일한 정의가 될 수 있음

결론

  • 단순히 테마만을 위해 "배포판"을 만든다는 것이 불필요해 보일 수 있음
  • 하지만 부팅 가능한 컨테이너로 일관된 디자인과 앱 구성을 정의하고,
  • 그것을 직접 만들고 사용할 수 있는 자유는 커다란 기쁨과 성취감을 줌

지금 이 글을 작성하는 운영체제는 내가 만든 컨테이너에서 부팅된 시스템
수많은 개발자의 작업 위에 내가 만든 창의적인 표현이 더해진 결과물이며,
이 점이 나에게 큰 즐거움을 줌

Read Entire Article