Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
賢いとは言えない私がどうやってNix に入門したのか
Search
Xantibody
May 24, 2025
0
140
賢いとは言えない私がどうやってNix に入門したのか
Xantibody
May 24, 2025
Tweet
Share
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
332
22k
Typedesign – Prime Four
hannesfritz
42
2.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
Producing Creativity
orderedlist
PRO
347
40k
Code Review Best Practice
trishagee
69
19k
Speed Design
sergeychernyshev
32
1.1k
What's in a price? How to price your products and services
michaelherold
246
12k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
KATA
mclloyd
32
14k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Side Projects
sachag
455
43k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Transcript
賢いとは言えない私がどうやって Nix に入門したのか ~NixOS 導入への道~ Ryu Aizawa 2025-05-24
アジェンダ 1. 自己紹介 2. なぜ Nix を学びだしたのか 3. どのように学習しているのか 4.
具体的に何に苦労したのか 5. やりたいこと、やってること 6. まとめ 2
自己紹介
• Name: r-aizawa • Age: 31 • GitHub :
Xantibody 4
なぜ Nix を学びだしたのか
• 職場の同僚が運悪く Nix を使っていて布教された ‣ サイコロ振って Emacs か Vim を使うか決める変態
• Vim コミュニティの一定の賢そうな人たちが盛り上がっていた • 丁度自分のノート PC を買って Linux を入れたかった ‣ はじめは Manjaro だったがなんか気にくわなかった ‣ NixOS に手を出したくなってしまった(好奇心) 6
前回の Nixmeetup#2 の発表を見て… 7
「みんな学び方とか理由付けが賢すぎるな???」 8
なので私のような人の影響で学びだした人間が • どう学習しているか • どう苦労してるか • 何が得られたか などを共有できたらおもしろいかなと思い登壇してみました 9
どのように学習しているのか
1. 人から教えてもらう 2. LLM に教えてもらう 3. 逃げ場をなくす 11
人から教えてもらう 12
人から教えてもらう • 愉快な仲間たちに煽られる • なんだかんだ教えて貰える • 同僚とインターンの子にもいた ‣ なんでもいいから聞く ‣
プライドを捨てろ! ! ! ! ! ! ! ! ! ‣ そんなものはもともとない 13
人から教えてもらう 愉快な仲間たち 14
人から教えてもらう • なんだかんだまじめに教えてくれたりなどする • 意見の角度が違うので共通している意見に着目していた ‣ 例: 個人ユーザーの設定は home-manager を使う
15
LLM に教えてもらう 16
LLM に教えてもらう • LLM が天才すぎるのでキャチボールする • ついでにコードも教えてもらう • なんとなく雰囲気わかってきたら自分で考える 17
LLM に教えてもらう • 万能ではないことはわかっているので参照元をちゃんと見る • ドキュメントもちゃんと向きあう(当り前) ‣ 膨大すぎるドキュメントからそれっぽい所を教えてくれる ‣ 考える時間に回せて良かった
18
LLM に教えてもらう Figure 1: 馬鹿みたいな質問方法 19
逃げ場をなくす 20
逃げ場をなくす • ThinkPad で Windows を消して強制してみる • 一番使う Neovim の
language server から消して運用してみる • どうしてもやりたい作業はデスクトップのパソコンで作業してました 21
逃げ場をなくす • これをクリアしないとラップトップが使えなかった ‣ 必死感 UP • 業務後に Nix の勉強するには気力がいるため昼休憩
1h を NixOS へ ‣ 集中して上手く勉強する習慣は付いた ‣ お昼 Nix と呼んでいた 22
逃げ場をなくす 23
具体的に何に苦労したのか
1. 抽象的な概念理解 2. エコシステムの多さ 3. Nix language 25
抽象的な概念理解 26
抽象的な概念理解 • これには困りました 27
抽象的な概念理解 • パッケージマネージャーとはなんたるか? • そんなの考えたこともなかったので何が解らないか解らない • 何が利点か解らない ‣ そもそも Nix
はなんなのか 28
抽象的な概念理解 解決策 調べていくうちにざっくりわかった! • 環境を汚さないようにできる • いろんな環境での再現性が高い ってわかった!(小学生) 29
エコシステムの多さ 30
エコシステムの多さ • Nixpkgs 31
エコシステムの多さ • Nixpkgs • Flakes 32
エコシステムの多さ • Nixpkgs • Flakes • home-manager • flake-parts •
nix-darwin 33
は?
エコシステムの多さ • エコシステムの量が私をより混乱させた ‣ 情報量で混乱するタイプ 35
エコシステムの多さ 解決策 • とりあえず Flakes わからなかったので最小構成を一回作ってみた ‣ こまもかさんの Zenn の記事を参考に
‣ Link: 1 ファイルから始める Nix Flakes • それっぽい構成がわかった! ‣ inputs と outputs とか必要なことすら理解していなかった ‣ それでも正直よくわからんところいっぱいある 作成した Repo minimum-nix-conf 36
Nix language 37
Nix language • Vim の師匠のニュージーランドおじさん ‣「Nix ムズカシクテヤメチャッタ」 ‣「Nix language は海外デモフヒョウカモ」
38
Nix language • 普通に意味が解らなかった • そもそも設定を関数で書いた経験が少ない • 意図がまったく読みとれていなかった ‣ そもそも途中まで
NixOS 内の Vim 壊れてた ‣ language server 動いてないので無限に呪文と向きあっていた 39
Nix language 解決策 • 途中からからこの言語で宣言管理しているイメージが湧いてきた ‣ 業務で Kubernetes や Terraform
を触ったおかげ ‣ 普通のプログラミングの書き方に何故か囚われていた • takeokunn/nixos-configuration を写経させてもらった ‣ link: nixos-configuration ‣ 正直良くわからんところまだいっぱいある 40
Nix language 失敗談 • 一時期本当にわからんすぎて混乱していた • Aider という AI エージェントに全てを委ねて爆発した
• もちろん revert 41
Nix language 42
Nix language 余談ですが、これを執筆してる最中に、 nix repel ていう対話できるコマンド見つけて 学習でこれつかえば良かったって思いました 44
やりたいこと、やってること
NixOS 内で開発できる環境がなんとか完成 • 始めは不便極まりなかった • language Server が Neovim 起動時だけ
PATH 通るのすげー 会社の Mac へ分割した Home-manager を入れる • せっかく分割したし、同じ環境を作りたい • Linux 用の設定があってそれをどうやってはぶくのか考え中… Nixpkgs コントリビュートチャレンジ • 欲しいフォントがなくてやってみるかと • 今日に間に合ったらよかったが実力不足 46
まとめ
なんだかんだ楽しく取り組めた • 普段ビルドとかグローバルの汚染とか恥ずかしながら考えなかった • Nix を使っている人がなにに狂気してるかとか感じとれた 次はこれやってみようがだいたいできる • なんでもあって意外と難易度調整もできるなと感じた ‣
ぶっちゃけ devbox からでよくね?ともなっている わからないことをわからないまま進める胆力 • 本当になにもわからなさすぎて 31 にしてボコボコにされた • ここまで難しいならコピペでも一旦すすめてしまえ • もっと必要になった時に詳細の理解から逃げなければ良いと思った 48
次があれば技術的な話できたらなーと ありがとうございました 49