11 ポイント 投稿者 GN⁺ 2025-04-23 | 2件のコメント | WhatsAppで共有
  • 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  
    
  • podmanbootc コマンドでイメージのビルドとシステム切り替えが可能:
    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 に反映し、失敗したら単純に再起動するだけで変更内容を削除できる
  • 一般的な Linux 環境で蓄積しがちな 残りかすがほとんど生じない という利点がある

代替手法との比較

  • Ansible やシェルスクリプト: 再現性と復旧に限界がある
  • systemd-sysext: /usr オーバーレイイメージを使えるが、エコシステムはまだ未成熟
  • Nix: 学習コストが非常に高い

結論として、bootc は安全性、柔軟性、ツールサポートの面で最も強力なアプローチ である
誤った変更があってもロールバックが容易なため、/usr を壊してしまう心配がない

「ディストリビューション」とは何か?

  • Blue95 は Fedora Xfce ベースのカスタマイズ済み OCI イメージ
  • Hacker News で紹介され、「単なるテーマなのにディストリビューションが必要なのか?」 という疑問が提起された

ディストリビューションの定義は曖昧になっている

  • 以前はディストリビューションを作ること自体が非常に複雑で時間のかかる作業だった
  • 今では Containerfile + CI/CD パイプライン だけで、似たような結果を簡単に作れる
  • Blue95 は GitHub Actions で自動ビルドされ、OCI レジストリに配布される
  • 単純な Fedora ベースコンテナを ディストリビューションと見なす基準は曖昧 である

既存事例との比較

  • BluefinBazzite のような bootc ベースのプロジェクトもディストリビューションと見なされることがある
  • 実際の使用体験は従来の Fedora とは明らかに異なる
  • 従来の定義では、ディストリビューションの意味を説明しにくくなっている
    • 「見ればわかる」 程度の定性的な基準だけが唯一の定義になり得る

結論

  • 単にテーマのためだけに「ディストリビューション」を作るのは 不要に見えるかもしれない
  • しかしブート可能なコンテナで 一貫したデザインとアプリ構成を定義 し、
  • それを自分で作って使える自由は 大きな喜びと達成感 を与えてくれる

今この文章を書いているオペレーティングシステムは、自分で作ったコンテナから起動したシステム である
数多くの開発者の仕事の上に、自分が作った創造的表現が加わった成果物であり、
この点が私に 大きな楽しさを与えてくれる

2件のコメント

 
zihado 2025-04-23

bootableコンテナがまだよく理解できませんね

 
GN⁺ 2025-04-23
Hacker Newsの意見
  • 一般的なコンテナは dotfiles のテストに非常に便利

    • 数年前、システムを素早くセットアップするために https://github.com/nickjj/dotfiles にインストールスクリプトを追加した
    • 公式の Debian および Ubuntu イメージを使ってテストした
    • 最近、Arch Linux をサポートするようにリファクタリングした
    • 全体のテストは約5分で完了できる
    • コンテナは1秒で起動し、残りはスクリプトの実行時間
    • システムを変更せずにテストできるようにしてくれる
    • Docker はこの10年で多くの良いことを可能にしてきた
  • イミュータブルな Linux とブート可能なコンテナというアイデアが好き

    • 次のプロジェクトは bazzite への移行になると思う
    • しかし、Containerfile を見てサプライチェーンの脆弱性が気になった
    • 20個の異なる copr リポジトリを使っており、バージョンも固定されていない
    • Debian を使うほうがパッケージに対する信頼が高い
    • サプライチェーンリスクを1つのファイルにまとめてパッケージ化するのは危険かもしれない
    • ほかの人も同じ懸念を持っているのか気になる
  • なぜテーマに対する情熱がもっとないのか不思議

    • Chicago95 と Garuda の KDE テーマが好き
    • さまざまな DE のテーマをダウンロードできるサイトはあるが、ほとんどは少し不安定
  • ブート可能なコンテナのことをまったく知らなかった

    • Blue95 は bootc を使う文脈だとより理解しやすい
    • NsCDE のような例を参考にできる
  • Enlightenment で遊んでいた頃を思い出す

    • X11 の可能性を限界まで押し広げようとした試みだった
    • いまも存在しているのが驚き
  • ブート可能なコンテナに興味を感じる

    • NixOS の impermanence モジュールに似ている
  • bootc プロジェクトは今の Linux で最も興味深いものの1つ

    • Debian のようなプロジェクトがこれを採用するとよいと思う
    • 安定性の面で多くの利点が得られるはず
  • サムネイル画像が自分の全状態を表している

  • 現代の OS は無限に簡単にテーマ化できるはずだと期待していたが、そうではない

    • 完璧なレトロ風テーマや独創的なテーマが存在すると思っていた