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
とあるAWS開発者の開発環境
Search
tositada_nakada
January 20, 2025
0
250
とあるAWS開発者の開発環境
tositada_nakada
January 20, 2025
Tweet
Share
More Decks by tositada_nakada
See All by tositada_nakada
宣言的パッケージマネージャー
tositada17
0
3
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
22
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
760
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
GraphQLとの向き合い方2022年版
quramy
50
14k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
59
It's Worth the Effort
3n
187
29k
[SF Ruby Conf 2025] Rails X
palkan
0
640
Balancing Empowerment & Direction
lara
5
820
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
82
Transcript
とあるAWS開発者の開発環境 tositada VS Code LT ! - VS Code Meetup
#33
自己紹介 - 名前: tositada - GitHub: https://github.com/tositada17 - お仕事でAWS 触っている
- linux 使うこと多い。arch linux使っているけど 最近nix始めた。 使用エディタ vscode visualstudio 2022 vim VS Code LT ! - VS Code Meetup #33
何を説明するか 〇NIXを使用した開発方法を紹介 × NIXの技術的な内容を紹介する。 nixについての詳細は後で学んでください。 VS Code LT ! -
VS Code Meetup #33
nixの歴史 VS Code LT ! - VS Code Meetup #33
2003 nix 開始 2013 nixOS release 2020 new nix cli release nix-command , flakes 2020 で大きく変わっているから、ドキュメント見るとき注意 distro watch 17位
nix とは purely functional package manager コード化されたパッケージマネージャー VS Code LT
! - VS Code Meetup #33
package manager とは - debian: apt - fedora: yum -
macOS: brew - Windows: WinGet? 一つずつコマンドでインストールするけど 違ったバージョンがインストールされたり アプリケーションによって別バージョンの依存が必要になる あの人何使ってるの? 確認が難しい VS Code LT ! - VS Code Meetup #33
programing language package manager - python: pip - nodejs:npm yarn
… package.json, package.lock - go: go.sum, go.mod lockファイルでバージョン関係をロックできる 依存関係を宣言的に確保できる。 osのパッケージマネージャと比べて自由度が高い VS Code LT ! - VS Code Meetup #33
nixのパッケージ - nix言語という独自の言語を使用して定義される。 - flake.nixを使うことで flake.lockで固定できる。 - nix-storeのsymblick linkを使用することで依存関係を気 にせずにパッケージを入れられる。
VS Code LT ! - VS Code Meetup #33
nix導入前に困ったこと 他のlinuxOSの場合 - python 3.9 - openssl1.0.2 必須 - python3.10
- open1.1.1 必須 python使いたいけど依存関係のせいで使えない opensslだけ上げるとwifi動かない, vscode動かない...etc VS Code LT ! - VS Code Meetup #33
nixのパッケージバージョン $ ls /nix/store/ | grep ssl 18b6frnaw53mwlcqssndd9n7z09x4f3d-openssl-3.0.14 k1dsk0zyq43pvi7f76is2rx6l4aphm5z-openssl-3.3.2 同じソフトウェアでも複数バージョン持つことができる。
使用する時は自動的に、関連づけられたものを呼び出してくれる。 これによりパッケージによるバージョン管理から逃げられる。 VS Code LT ! - VS Code Meetup #33
業務で開発するアプリ実行するまでに ビルドしたり、インストールしたり 設定することが多い nixosのdevshellを 使って必要な環境を 用意しよう VS Code LT !
- VS Code Meetup #33
環境の説明 nixではパッケージのインストールの範囲を制限できます。 - systemにインストールするパッケージ - 特定ユーザーでインストールするパッケージ - 一時的に使用するパッケージ VS Code
LT ! - VS Code Meetup #33 devshell python 3.12 System (vscode-server,gh,git) userA (ghost, lazygit,...) devshell python 3.9 vscode WSL Windows terminal
devshell? 既存のnixosを拡張して、特定のソフトウェアを入れることができます。 dockerやvagrantでは既存のOS上で動いているソフトを動かせませんが devshellでは問題なく使えます。 $ nix develop /xxx/xxx/xxx/ (flake.nixが存在する場所??) VS
Code LT ! - VS Code Meetup #33
コードの詳細は開きたくない。... VS Code LT ! - VS Code Meetup #33
demo VS Code LT ! - VS Code Meetup #33
demo flake.nixを書く VS Code LT ! - VS Code Meetup
#33
demo 探す https://search.nixos.org/packages VS Code LT ! - VS Code
Meetup #33
demo develop に入る $ nix develop ./develop/python3.12/ flake.nixを最初に読み込む developを切り替える 一度devshellを終了してdevelopコマンドを実行
$ exit $ nix develop ./develop/python3.9 vscodeを開く $ code . VS Code LT ! - VS Code Meetup #33
まとめ • 仮想化技術を使わずとも ◦ Dockerを使用した環境に近い開発環境が使える ▪ 同じくらいにCleanに使える • 設定を一度作成すれば使いまわせる。 ◦
使うにはnixが必要 ◦ 設定するにもnixが必要。 VS Code LT ! - VS Code Meetup #33
参考 リンク集 NixOS & Flakes Book nixosについて詳しく書かれた本 https://github.com/nix-ja 日本人のためのnixコミュニティ nix-community/awesome-nix nixコマンドを手っ取りばやく理解できます。
nixosのwslで vscode remote-wsl を起動する vscodeで開く場合に参照 他にもnixについて検索するといろいろと出てきます。 VS Code LT ! - VS Code Meetup #33