NixOS に触っていたのは、ベター Ubuntu として使えると勘違いしたためです。結局難しすぎて返り討ちに遭いました。

現在改めて NixOS を使用しているのは、 Nix への期待があるためです。また他にあり得た選択肢について書いていきます。

Linux distribution の選択について

Linux 初心者によるエアプとなります。ご了承ください。

Arch Linux

Linux distribution の中では Arch Linux が一際輝く存在です。設定ファイルを自分で編集しようという人たちが好んで使用し、強力なコミュニティを築いています。

特に ArchWiki が情報の宝庫として知られています。他の distribution の使用者も、まず第一に ArchWiki を参照するようです。ある種、 Linux の標準を作り出している貫禄があります。

Arch Linux と言えば、最新パッケージを定期的にリリースする rolling release が特徴的です。常に最新のプログラムを利用できる上、小マメにシステムを更新すれば、巨大なバージョンアップに苦しむこともありません。しかし最新のパッケージはよく『壊れている』ので、自力で環境を直す気概が必要です。

Arch Linux 系 distribution

Manjaro は Arch ベースの distribution です。 Manjaro のパッケージは Arch のパッケージの 1 週間遅れで配布され、すでに Arch ユーザの手で初期不良の修正等が行われた状態で配信されます。

Manjaro, EndeavaurOS, Arco を始め、 Arch ベースの distribution は強い人気を集めています。僕も本来は Manjaro あたりが一番身の丈に合っている気がします。

NixOS の特異性について

NixOS では、設定ファイルを編集することで宣言的に環境構築できます。またそれぞれのパッケージのビルドには Nix が使用され、依存性を記述した再現可能性の高いビルドが実施されます。

それだけ聞くと、むしろ他の OS を選択する理由が無いかのようですが、実際には Nix で管理されていないプログラムが利用できなくなるため、ハイリスクな選択です。

Nix 管理外のプログラムが利用できない理由は、正直把握していないですが、動的ライブラリへのリンクが困難なことが一役買っている気がします。いずれにせよ、いつか自分で derivation (Nix を用いたビルド手順) を書く必要があると思います。

Nix が書けるようになると、何でも Nix を経由してビルドするようになるかもしれません。また設定ファイル全体を Nix Flakes で管理するなどの遊びの余地もあります。

Arch Linux vs NixOS?

NixOS においては、間接的なレイヤで設定を実施することで、望んだ効果が半ば自動的に反映されます。しかしその内部的な挙動を知るためには、より下のレイヤまで降りていかねばなりません。またいずれは間接レイヤ等を自力で構築する必要性が生まれます。

一方 Arch Linux を使うと、より生に近い Linux に触れることができます。また ArchWiki の内容を直接取り込んで設定できるので、素直に邁進していけると思います。

つまり Arch と NixOS を両方やらねればならないという気がしています。気の遠い話です。。