Nix の布教
宣言的かつ純粋関数型のパッケージ管理・ビルドシステム
ロックファイルですべてを固定できる
まずは個人の dotfiles を代替しよう
ふつうに shell script でガッでよくない?
よくない
手続き的な処理になってしまうでしょ
例えば Rust でビルドするツールがあった場合、Rust をセットしてから入れないと落ちるよね
でも Nix は宣言的、つまりどういう状態に帰着して欲しいかを書けばいいからこういうことにはならない
へー、じゃあ他にも Nix + home-manager で代替すると何がいいポイントがあるの? CI が通ったら実環境でもビルドが通ることが保証される
アーキテクチャごとにビルドするので、CI が Linux 環境なら少なくとも Linux なら通る
Darwin のテストはできないからわからんけど、だいたい通る
これは何が言えるかというと、ビルドに再現性があるということ
環境がキャッシュされる
例えばすげえ破壊的変更を設定でしてしまった場合も、前の環境にすぐ戻せる
これは個人用の設定だけれど、実はプロジェクト管理にも Nix は使えるよ
asdf/mise の上位互換だよ
こいつらは node とかのバージョン固定だけしかできない
でも Nix なら他にも使うだろうコマンド / ツールを導入した上でバージョン固定ができる
でも全員が Nix 入れなきゃダメじゃない?
asdf2nix みたいなのがあるよ
nix develop ってコマンドを打つだけで環境に入れるよ
社内で利用するとしたら?
例えば Python で書くようなプロジェクトをずっとやってきて Node を触る時、モダンな環境構築がわからない
でも Nix があれば?
nix develop で一発!
実際に社内ではこういうリポジトリにすでに使われているんだぜ!
1 つめ
2 つめ
個人の環境構築や、個人プロジェクトの管理に Nix、いかがですか?