ホロチェーン開発ではWindowsにしろ、Macにしろ、Linuxにしろ同等のツールを使用しています。しかし、残念ながらNixOSツールは現在MacとLinuxでしかネイティブに稼働しません。
しかし、これはずっとこのままであるわけでもありません。
Windows用のNixOSは現在開発中です!
ですので、Windows用のNixOSが完成するまでの対処法として、仮想マシンを使っていくことになります。この一連のプロセスはローカルウェブサーバーを使用する方法と似ています。ホロチェーンに最適なオプションとしてDockerとVagrantがあります。
オフィシャルNixOSボックスでカスタムセットアップを作成するのはさほど難しいことではないので安心してください。
こちらのガイドではVagrant/VirtualBoxで NixOSを使用する手順を説明していきます。
但し、Dockerや他のVagrantプロバイダを使用することも可能ですので、それは読者の判断にお任せします。このガイドは出来るだけ、より多くの人にホロチェーンを使ってもらえるようにするために上記の方法での手順を説明していきます。WindowsでのDockerの使用はWindows Pro(有料)が必要になってきますので注意をしてください。VirutalBoxは比較的にアクセシブルなツールになっています。
Vagrantについて
Vagrantは仮想マシン/ボックスなどをコンフィグするためのツールです。
各プロジェクトのVagrantfileにそのコンフィグレーションが格納されるようになっています。
これにより、プロジェクトに関わっている開発者全員が大体同じボックスで開発できるようになります。
例として、ホロチェーンコアで使用しているVagrantfileを確認すると良いでしょう。
このガイドでは、ダウンロード時間を短縮にするために上記のVagrantfileの軽量バージョンを使用していきます。
例えば、我々が、ホロチェーンを使って”my_first_app”というアプリを生成したいとしましょう。これには大まかに以下の手順が必要になっていきます。
- アプリのために新フォルダを作成する
- Vagrantfileをフォルダ内にコピーする
- 仮想マシンをVagrantfileから起動する
- 起動したマシンにSSHで入る
- アプリ生成のためにHolochain及びNixOSコマンドを実行する
共有フォルダ
Vagrantはデフォルトで共有フォルダを自動的にシンクします。
共有フォルダはボックス内でも外でも同じものになります。
ですので、プロジェクトフォルダを”/vagrant”の中にシェアする方法が主流になります。
共有フォルダ(つまりプロジェクトフォルダ)を扱うことにおいてのワークフローは、
- ボックス外でコードをたたく
- Gitでのバージョンコントロールもボックス外で行う
- テストはボックス内で行う
- Hcなどのホロチェーンツールもボックス内で使用する
ボックスの管理
Vagrantプロジェクトには共通の要になるコマンドが存在します
以下のコマンドはプロジェクト内で実行される必要があります。
vagrant up
vagrantボックスをプロジェクト用にブートします。
vagrant halt
プロジェクト用のvagrantボックスを終了します。
vagrant destroy
プロジェクト用のvagrantボックスを削除します。
必要のないボックスはディスクスペースやその他のリソースの無駄になりかねないので注意しましょう。
vagrant ssh
現在のターミナルでプロジェクト用のvagrantボックスにログインします。
NixOSボックス
このガイドで使用しているVagrantfileはNixOSを使用しています。
これはつまり、追加のnixツールをインストールする必要が無いということです。
更に加えて、ボックスのコンフィグレーションはnixで行われなければならないということになります。つまりこれが、vagrant nixosプラグインをインストールされなければならない理由になります。
まだ、vagrant nixosプラグインをインストールしていない場合は下記のコマンドを実行してインストールしましょう。
vagrant plugin install vagrant-nixos-plugin