VagrantでOpenRTP20用boxファイルを使ってビルド環境を構築する¶
- Table of contents
- VagrantでOpenRTP20用boxファイルを使ってビルド環境を構築する
環境整備¶
VirtualBoxとVagrantが必要です。ここではWindows10上への構築手順を紹介しますが、Linux上でも構築可能なはずです。
2021/05/06現在、VartualBox6.1.22 + Vagrant2.2.16 でOKを確認
- VirtualBox 6.1.6
https://www.virtualbox.org/
https://download.virtualbox.org/virtualbox/6.1.6/VirtualBox-6.1.6-137129-Win.exe
- Vagrant 2.2.9
https://www.vagrantup.com/
https://releases.hashicorp.com/vagrant/2.2.9/vagrant_2.2.9_x86_64.msi
- インストール
- VirtualBox
- 途中で「デバイスソフトウエアをインストールしますか?」と聞かれますので、インストールを選択
- Vagrant
- インストール先はデフォルトのパスのまま
- OS再起動後、コマンドプロンプトを立ち上げてバージョンやHelpが表示されることを確認しておく。
初回はHelpが表示されるまで待たされる場合があります。>vagrant -v Vagrant 2.2.9 >vagrant --help
- Vagrantプラグインのインストール
- VM環境のディスクサイズを拡張するため vagrant-disksize プラグインをインストールする
>vagrant plugin install vagrant-disksize
- このプラグインをインストールしてあることで、Vagrantfileに記載されているVM環境のディスクサイズを簡単に拡張できます
- デフォルトで32GBのディスクサイズにしていますので、すぐ拡張する必要はありませんが、 このプラグインをインストールしないとエラーになります
- VM環境のディスクサイズを拡張するため vagrant-disksize プラグインをインストールする
- VirtualBox
- (おまけ)VMのディスクサイズ拡張手順
・VM環境をシャットダウンする >vagrant halt ・Vagrantfileのディスクサイズを書き換える DISK_SIZE = "50GB" <-- ★ここ ・VM環境を起動する >vagrant up ・起動後にVirtualBoxマネージャーのストレージ欄を見ると、ディスクサイズが拡張されていることを確認できる
VM環境構築¶
- OpenRTPのmasterソースに含まれる下記Vagrantfileを使用する
OpenRTP-aist/scripts/openrtp20-eclipse416/Vagrantfileopenrtp20-eclipse416 │ │ Vagrantfile │ └─scripts linux-make_packages.sh src_build_script.sh win32-make_packages.sh
- このディレクトリで作成する必要は無いので、openrtp20-eclipse416 を適当な場所へコピーして使うとよいです
- 下記を実行。ベースのvagrant boxファイル(約5GB)を下記からダウンロードするので、時間がかかります。
https://openrtm.org/pub/openrtp/vagrant-box/openrtp20-eclipse416.box>cd openrtp20-eclipse416 >vagrant up
- エラーメッセージが出ずに終了していればOKです
- VM環境へはsshで接続します(パスワード:vagrant)
>vagrant ssh openrtp20-eclipse416
- 「openrtp20-eclipse416」はVM名です。これはVagrantfileで定義しています
VM_NAME = "openrtp20-eclipse416"
- vagrant global-staus コマンドで、現在起動(vagrant up)しているVM環境を確認できるので、ここからもVM名がわかります
>vagrant global-status
- 「openrtp20-eclipse416」はVM名です。これはVagrantfileで定義しています
OpenRTPのビルド手順¶
- sshで接続したHOMEディレクトリにデフォルトで存在するファイル、ディレクトリは削除しないで下さい
- HOME下にsrcディレクトリを作成した場合の手順は下記となります
$ mkdir src $ cd src/ $ git clone https://github.com/OpenRTM/OpenRTP-aist $ cd OpenRTP-aist/ ビルド時に使用するスクリプトをコピーします $ cp ~/scripts/*.sh . ソースビルド $ ./src_build_script.sh Windows用全部入りパッケージ生成 $ ./win32-make_packages.sh
- 全部入りパッケージのLinux用スクリプトは「linux-make_packages.sh」です
- packages下に生成されます
$ ls packages/
ホスト環境との共有フォルダ¶
- shareフォルダを共有フォルダとして設定しています。ここにファイルを置けば、簡単にVMとホスト間でやり取りできます
- VM環境では $HOME/share で、ホスト環境は Vagrantfile と同じディレクトリに存在します
- scp を使う場合
- ホストがWindows環境の場合、powershellのscpコマンドがデフォルトで使えます
- hoge.txtをWindows側からVM側へコピーする場合、Vagrantfileに定義しているポート番号を使います
>powershell >scp -P 22042 hoge.txt vagrant@localhost:/home/vagrant
トラブル対応¶
vagrant upできない¶
2020/07/21記
- 「Failed to attach the network LUN」のエラー
- Windows10 2004へアップデート後に発生
> vagrant up : There was an error while executing `VBoxManage`, a CLI used by Vagrant for controlling VirtualBox. The command and stderr is shown below. Command: ["startvm", "6e01062d-a75b-4bdc-8fd2-751e8ba06dee", "--type", "headless"] Stderr: VBoxManage.exe: error: Failed to open/create the internal network 'HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter #4' (VERR_INTNET_FLT_IF_NOT_FOUND). VBoxManage.exe: error: Failed to attach the network LUN (VERR_INTNET_FLT_IF_NOT_FOUND) VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component ConsoleWrap, interface IConsole
- 下記情報に従ってネットワーク接続の「VirtualBox Host-Only Ethernet Adapter」プロパティの「VirtualBox NDIS6 Bridged Networking driver」のレ点を外し、
Windows再起動すれば解決した(コントロールパネル -> ネットワークとインターネット -> ネットワーク接続)
https://stackoverflow.com/questions/33725779/failed-to-open-create-the-internal-network-vagrant-on-windows10/33733454#33733454