Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
とあるAWS開発者の開発環境
Search
tositada_nakada
January 20, 2025
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
とあるAWS開発者の開発環境
tositada_nakada
January 20, 2025
More Decks by tositada_nakada
See All by tositada_nakada
宣言的パッケージマネージャー
tositada17
0
13
Featured
See All Featured
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Odyssey Design
rkendrick25
PRO
2
880
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
410
Automating Front-end Workflow
addyosmani
1369
210k
Product Roadmaps are Hard
iamctodd
55
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Are puppies a ranking factor?
jonoalderson
2
4.1k
The browser strikes back
jonoalderson
0
1.8k
Designing for Timeless Needs
cassininazir
1
530
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
RailsConf 2023
tenderlove
30
1.6k
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