Flakes
まだexperimental
install方法なども書いている
参考
Flakesが解決する課題、試す方法など、まとまってて良い
tutorialとか
残券
Flakesの立ち位置
Nixでは2回の依存解決のタイミングがある
この時にFlakesが使われる
Nix式を入力に取り一意なFlakeを生成する
Flakesが解決する課題
良い感じにchannelを作るのが難しい
Nixベースのprojectはstandardizedなstructureを持っていない
shell.nixとかはあるが、多くのユースケースに対応できていない
commands
nix flake check
builx check
とは
nix flake check --no-build
nix式の評価
λ nix flake clone <path>
flakeのclone
nix flake info
リポジトリの説明
$ nix flake new -t template#full /path/to/output
指定のdirにflakeを作製
導入
home-managerを使ってglobalに使えるようにする ref 初回に1度やっておけば良い
projectに導入する
使ってる
RFC
example
flakeが誕生した今、わざわざflakeなしで使うメリットってあるの?
無い気がするので、defaultで入っているようにはしないの?
flakeを使うかどうかの選択の余地を残すと、学習コストが増えてしまわない?
けどまだexperimentalだからか
$ nix devleop
これはなに?
何が違うのかいまいちわからん
今は「Nixエコシステムの新機能」と紹介される
Stateful Channelを代替する
そもそも↑これがなにかわからんmrsekut.icon
↑こいつの概念が複雑で初心者が混乱するらしい
$ nix shell github:edolstra/dwarffs/cd7955af31698c571c30b7a0f78e59fd624d0229 ...
こんな感じでgithubのrepoとcommit hashで指定して実行する
flakesはnixpkgsの特定のversionに依存する
気密性を上げるために、必要なものはgitに管理させる
自分のprojectにflakeとgitを使って設定を書いたら、他のユーザーはflakeを使って1行で再現し、利用できる
$ nix shell github:edolstra/hello -c hello
home-managerにprograms.direnv.nix-direnv.enableFlakesって設定あるな
もっかい読むか