Bootable 컨테이너 시대, 리눅스 테마 꾸미기의 즐거움
(blues.win)- 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와는 확연히 다름
- 기존 정의로는 배포판의 의미를 설명하기 어려워짐
- "딱 보면 알지" 정도의 정성적 기준이 유일한 정의가 될 수 있음
결론
- 단순히 테마만을 위해 "배포판"을 만든다는 것이 불필요해 보일 수 있음
- 하지만 부팅 가능한 컨테이너로 일관된 디자인과 앱 구성을 정의하고,
- 그것을 직접 만들고 사용할 수 있는 자유는 커다란 기쁨과 성취감을 줌
지금 이 글을 작성하는 운영체제는 내가 만든 컨테이너에서 부팅된 시스템임
수많은 개발자의 작업 위에 내가 만든 창의적인 표현이 더해진 결과물이며,
이 점이 나에게 큰 즐거움을 줌
Hacker News 의견
-
일반적인 컨테이너는 dotfiles 테스트에 매우 유용함
- 몇 년 전, 시스템을 빠르게 설정하기 위해 https://github.com/nickjj/dotfiles 에 설치 스크립트를 추가했음
- 공식 Debian 및 Ubuntu 이미지를 사용하여 테스트했음
- 최근 Arch Linux를 지원하도록 리팩토링했음
- 전체 테스트를 약 5분 만에 완료할 수 있음
- 컨테이너는 1초 만에 시작되고, 나머지는 스크립트가 실행됨
- 시스템을 수정하지 않고도 테스트할 수 있게 해줌
- Docker는 지난 10년 동안 많은 좋은 것을 가능하게 했음
-
불변의 Linux와 부팅 가능한 컨테이너의 아이디어를 좋아함
- 다음 프로젝트는 bazzite로 전환하는 것일 것임
- 그러나 Containerfile을 보고 공급망의 취약성에 대한 우려가 있음
- 20개의 다른 copr 저장소를 사용하고 있으며, 버전이 고정되지 않음
- Debian을 사용하면 패키지에 대한 신뢰가 높음
- 공급망 위험을 하나의 파일로 패키징하는 것은 위험할 수 있음
- 다른 사람들도 같은 우려를 가지고 있는지 궁금함
-
테마에 대한 열정이 왜 더 많지 않은지 궁금함
- Chicago95와 Garuda의 KDE 테마를 좋아함
- 다양한 DE의 테마를 다운로드할 수 있는 웹사이트가 있지만, 대부분은 조금 불안정함
-
부팅 가능한 컨테이너에 대해 전혀 몰랐음
- Blue95는 bootc 사용 맥락에서 더 이해가 됨
- NsCDE와 같은 예시를 참고할 수 있음
-
Enlightenment를 가지고 놀던 시절이 생각남
- X11의 가능성을 밀어붙이려 했던 시도였음
- 아직도 존재한다는 것이 놀라움
-
부팅 가능한 컨테이너에 대해 흥미로움을 느낌
- NixOS의 impermanence 모듈과 유사함
-
bootc 프로젝트는 현재 Linux에서 가장 흥미로운 것 중 하나임
- Debian과 같은 프로젝트가 이를 채택하면 좋겠음
- 안정성 측면에서 많은 이점을 얻을 수 있음
-
썸네일 이미지가 나의 전체 상태를 대변함
-
현대 OS가 무한히 쉽게 테마화될 수 있을 것이라고 기대했지만, 그렇지 않음
- 완벽한 복고풍 테마와 독창적인 테마가 존재할 것이라고 생각했음