概要
以下、自分用のメモです。忘れないうちにメモメモ。。。
最近、jetpackというところからリリースされている devbox というものの存在を知ったのですが、これ便利ですね。
Dockerみたいな感じですが、仮想マシンみたいなのを立ち上げないので、ローカルで他に影響を与えない仮想環境が作れる感じ。
ローカルなのでDockerみたいに全く別の環境になるわけじゃなくて、あくまで自分のローカル環境がそのまま使えるのが楽です。
python の venv みたいな感じですね。内部では nixOS が利用されている模様。
WSLの環境で試してみましたが、Docker動かすよりもだいぶ軽い感じがしました。個人的にはいい感じ。
試してみる
インストール
インストールは、上記のサイトにある通りにやればすんなり入りました。
バージョンは以下。
$ 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>' を確認してください。
環境も元にもどります。
参考情報
過去の記事については、以下のページからご参照下さい。
サンプルコードは、以下の場所で公開しています。