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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
Claude Code のすすめ
schroneko
67
210k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
160
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
170
The SEO identity crisis: Don't let AI make you average
varn
0
330
Everyday Curiosity
cassininazir
0
130
Tell your own story through comics
letsgokoyo
1
810
Test your architecture with Archunit
thirion
1
2.2k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Music & Morning Musume
bryan
47
7.1k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
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