この Linux ディストリビューションは PC をソース コードのように扱い、ほぼ動作します
ほとんどのオペレーティング システムは、基本的に同じ方法で動作します。つまり、バイナリまたはアプリ ストアからアプリをインストールし、必要に応じて構成ファイルを変更し、必要に応じて部分的な更新を実行します。 NixOS はそのアプローチを完全に変えます。
NixOS とは一体何ですか?
コンポーネントを列挙して構成されるOS
Linux であろうとなかろうと、オペレーティング システムには通常、OS の外観、動作方法、および実行できるプログラムを決定する一連の事前定義されたパッケージと構成設定が付属しています。
NixOS は別のアプローチに依存しています。既存の OS を好みに合わせて変更するのではなく、 その通り テキストファイルの説明を使用して必要なものを指定します。この説明には、必要なパッケージ、サービス、アカウント、設定がすべて含まれています。
終わったら走ります nixos-rebuild スイッチ、flake.nix (またはconfiguration.nix) を読み取り、その記述に基づいてオペレーティング システムを構築します。
いろいろな意味で、インターネットでレシピを入手し、それに対応する買い物リストを作成したことを思い出します。何が必要かを把握し、それからそれらをどのように組み合わせる必要があるかを考えます。終わったら、何か食べるものがあります。または、この場合はオペレーティング システムを使用しています。
全体を支えているのは Nix と呼ばれるパッケージ マネージャーで、各パッケージを手動で独自のフォルダーにドロップします。重要なのは、フォルダーの名前は、 ハッシュ プログラムだけではありません。そのため、異なるバージョンの (競合する可能性がある) ソフトウェアのインストールが比較的簡単になります。インストーラはこれらを混在させようとはせず、一般的な Linux インストールで通常発生する可能性のある依存関係の問題はほとんど回避されます。
もちろん、この設定ではいくつかの問題も発生します。ほとんどの Linux ソフトウェアは、典型的な Linux ファイル システム階層を使用してインストールするように設計されています。つまり、Nix インストーラー以外のものを使用してインストールしたものには、パッチを適用しない限り問題が発生します。
Docker 構成ファイルを使用して OS を構築するようなものです
Nix を使用して「新しい」OS を構築するたびに、古いバージョンは新しいバージョンとともに非アクティブのまま残されます。何か問題が発生した場合は、回復環境をいじったり、問題を手動でトラブルシューティングしたりすることなく、単に最後に機能していたバージョンにロールバックするだけです。
テキスト ファイルベースの構成アプローチにより、 とても 異なるコンピュータ上でオペレーティング システムの同一のコピーを複数作成、インストール、実行できることを簡単に確認できます。ホーム ユーザーとしてはあまり便利ではありませんが、100 台の PC を同一に構成する必要があるプロの環境では、時間を節約するための優れた方法となる可能性があります。ホームラバーにもアピールできるかもしれません。基本的なテンプレートを作成すると、それを使用して多数の同一の VM またはコンテナーをロールアウトできます。
誰が NixOS を使用すべきでしょうか?
ニッチなOSです
Linux に初めて参入する場合、NixOS はかなり戸惑うかもしれませんが、開発者、システム管理者、およびホームラバーは皆、1 つのセットアップ スクリプトを作成し、将来それを何十回も再利用できる機能を高く評価するでしょう。
それにはいくつかのトレードオフが伴います。些細な調整でも すべき Nix を使用して、構成の調整や新しいアプリのインストールなどの変更を伝えるため、頻繁にリビルドすることになります。私はaptを悪い習慣のように呼び出すことに慣れていましたが、これはかなり厳しい調整であることがわかりました。
さらに、他の新しいシステムと同様に、Nix の学習には時間がかかります。ただし、apt または dnf から Nix への転送は、apt から dnf への転送と同じ種類のものではなく、まったく異なります。さらに、コミュニティが目指している方向である Flakes は、Linux の機能としてはまだ比較的新しいものです (多くは数十年前のものです)。
そして、私はすぐに気づきましたが、古い NixOS ビルドはかなり早くスペースを消費する傾向があります。私の容量は 1 週間で約 20 GB に増加し、1 年後には 100 GB を超えると予想されます。幸いなことに、古いシステムの痕跡をクリーンアップするための簡潔なコマンド、nix-collect-garbage があります。比較的頻繁に実行することをお勧めしますが、現在のバージョンが安定していることがわかってから実行してください。
NixOS を起動するためにデュアルブートする必要はありません
ブート可能なUSBドライブを作成することをお勧めします それなし ドライブにインストールして、NixOS が気に入るかどうかを確認してください。インストールしたら、必要に応じて構成ファイルをいじってください。設定全体を git リポジトリに複製することもできます。これにより、新しいマシン (または、何か重大な問題が発生した場合は現在のマシン) をより迅速に再構築できます。
私自身が日常的に使用する場合、ビルド/リビルド システムには少し制限があります。より優れた安定性が必要な場合は、代わりに、Kinoite のような、より従来型の不変アトミック ディストリビューションを使用する傾向があると思います。
ただし、学校、政府機関、さらにはホームラボのアプリケーションにとって、NixOS は Linux への興味深いアプローチであり、チェックしてみる価値があります。
このテーマについてさらに詳しく知りたい方は以下をご覧ください