いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

WSLでdevboxを使う

概要

以下、自分用のメモです。忘れないうちにメモメモ。。。

最近、jetpackというところからリリースされている devbox というものの存在を知ったのですが、これ便利ですね。

Dockerみたいな感じですが、仮想マシンみたいなのを立ち上げないので、ローカルで他に影響を与えない仮想環境が作れる感じ。

ローカルなのでDockerみたいに全く別の環境になるわけじゃなくて、あくまで自分のローカル環境がそのまま使えるのが楽です。

python の venv みたいな感じですね。内部では nixOS が利用されている模様。

www.jetpack.io

WSLの環境で試してみましたが、Docker動かすよりもだいぶ軽い感じがしました。個人的にはいい感じ。

試してみる

インストール

インストールは、上記のサイトにある通りにやればすんなり入りました。

www.jetpack.io

バージョンは以下。

$ devbox version
0.4.2

devbox.jsonファイルを生成

initコマンドで設定ファイルを出力できるみたい。

$ devbox init

$ cat devbox.json
{
  "packages": [],
  "shell": {
    "init_hook": null
  },
  "nixpkgs": {
    "commit": "f80ac848e3d6f0c12c52758c0f25c10c97ca3b62"
  }
}

Zigをインストールみてみる

今の私の環境にはzigはインストールされていません。

$ which zig

では、devboxさんにzigを追加します。

$ devbox add zig
Installing nix packages.
zig (zig-0.9.1) is now installed.

入ったみたいです。devbox.jsonは以下のように更新されています。

{
  "packages": [
    "zig"
  ],
  "shell": {
    "init_hook": null
  },
  "nixpkgs": {
    "commit": "f80ac848e3d6f0c12c52758c0f25c10c97ca3b62"
  }
}

devboxのシェルに入る

devbox環境に入るために、shell コマンドを実行します。

$ devbox shell
Ensuring packages are installed.
Starting a devbox shell...

(devbox) $ 

入れました。

んで、先程 add した zig が存在するか確認してみましょう。

(devbox) $ which zig
/nix/store/z6z33jpjpn4vbi16xqkz4id4ryvbjyw1-zig-0.9.1/bin/zig
(devbox) $ zig version
0.9.1

いますね。

ちゃんと動くかどうかを確認するために、helloworldしておきます。

(devbox) $ mkdir tmp; cd $_

(devbox) $ zig init-exe
info: Created build.zig
info: Created src/main.zig
info: Next, try `zig build --help` or `zig build run`

(devbox) $ zig build run
info: All your codebase are belong to us.

ちゃんと動いています。

devbox環境を抜ける

抜ける場合は普通に exit するだけです。

(devbox) $ exit

$ which zig

$ zig --version
コマンド 'zig' が見つかりません。もしかして:
  command 'kig' from snap kig (22.08.2)
  command 'wig' from deb wig (0.6-2)
  command 'zkg' from deb zkg (2.12.0-1)
  command 'dig' from deb bind9-dnsutils (1:9.18.1-1ubuntu1.3)
  command 'kig' from deb kig (4:21.12.3-0ubuntu1)
  command 'zip' from deb zip (3.0-12build2)
  command 'pig' from deb bsdgames (2.17-29)
  command 'zic' from deb libc-bin (2.35-0ubuntu3.1)
  command 'rig' from deb rig (1.11-1.1)
  command 'zim' from deb zim (0.74.3-1)
  command 'tig' from deb tig (2.5.1-1)
他のバージョンについては 'snap info <snapname>' を確認してください。

環境も元にもどります。

参考情報

www.itmedia.co.jp

dev.classmethod.jp

note.com

zenn.dev

qiita.com

zenn.dev

www.jetpack.io

search.nixos.org


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。