My Linux Odyssey: How I Ended Up on NixOS
著者は長年にわたるLinuxディストリビューション遍歴を経て、最終的にNixOSに辿り着いた経緯を語る。再現可能な設定、宣言的なパッケージ管理、システムの安定性といったNixOSの特徴が彼のニーズに合致し、Linuxとの旅の終着点として最適だったことを説明している。
背景メモ
NixOSは、従来のLinuxディストリビューション(Ubuntu、Fedora、Archなど)とは設計思想が根本的に異なる「宣言的」なOS。ユーザーはシステム全体の設定を1つの設定ファイル(configuration.nix)にコードとして記述し、そこから一貫した環境を再現可能な形で構築する。
- 「イミュータブル(不変)」な設計:一度ビルドされたシステムは変更されず、設定変更は新しい「世代(generation)」として作成される。問題があれば過去の世代に簡単にロールバックできる。
- パッケージ管理に「Nix」という独自のパッケージマネージャーを使用。ソフトウェアの依存関係が他と衝突しないよう隔離され、同じソフトの複数バージョンを同時にインストール可能。
- 最大の利点は「再現性」:同じ設定ファイルを使えば、どのマシンでも全く同じ環境を構築できる。開発環境やサーバー構成をコードで管理する「Infrastructure as Code」の考え方をデスクトップOSに持ち込んだもの。
- 欠点としては、学習曲線が非常に急峻で、従来のLinuxの常識(FHS準拠のファイルシステム階層など)が通用せず、独自の構文や概念(Nix言語、derivation、store pathsなど)を習得する必要がある。