プロジェクト

全般

プロフィール

VagrantでOpenRTP20用boxファイルを作成する

OpenRTPのソースビルド用に、Eclipseのプラグインをインストールした環境のVagrant用boxファイルを作成する手順

  • 2021/05/06:Eclipse2020-06(4.16)バージョン用説明を追加

ホスト環境

  • Windows10上にVirtualBoxとVagrantをインストールする
    • ホストがLinux環境でも問題ない

実行

  • OpenRTPのmasterソースに含まれる下記Vagrantfileを使用する
    OpenRTP-aist/scripts/eclipse416/Vagrantfile
  • このディレクトリで作成する必要は無いので、eclipse416/Vagrantfile を適当な場所へコピーして使うとよいです
  • 下記を実行。eclipseプラグイン等をダウンロードするので、相当時間がかかります。
    >cd eclipse416
    >vagrant up
    
  • エラーメッセージが出ずに終了していればOKです
  • Eclipse2020-06(4.16)用説明
    • ダウンロードが必要なSDK等は、リンク切れを考慮し下記にアップしてあります
      https://openrtm.org/redmine/projects/rtsystemeditor/files
      BabelLanguagePack-eclipse-ja_4.16.0.v20201010073410.zip
      eclipse-SDK-4.16-linux-gtk-x86_64.tar.gz
      eclipse-SDK-4.16-win32-x86_64.zip
      eclipse-rcp-2020-06-R-linux-gtk-x86_64.tar.gz
      eclipse-SDK-4.16-macosx-cocoa-x86_64.dmg
    • MacOS用SDKはtar.gzの提供が無くなりdmgファイルのみとなったため、このLinux環境でのビルドは行わず、Mac環境で手動で対応する
      • Linux用にビルドしたOpenRTP全部入りパッケージから必要なjarファイルをコピーし、dmgを再生成する手順
      • このためVagrantfileでMacOS用SDKをダウンロードする処理は定義していない
    • dmgファイルを使って自動ビルドする場合、OpenRTP-aist/make_packages の修正が必要になる
  • Eclipse2019-03(4.11)用説明
    • 2020/05/12時点で、Eclipseの下記日本語パッケージのリンクが切れているので、ダウンロードされません
      BabelLanguagePack-eclipse-ja_4.10.0.v20190126060001.zip
    • openrtm.orgにアップロードしたboxファイルには手動コピーして含めているので大丈夫です

boxファイル生成

  • boxファイルのサイズを小さくするため、不要なファイルを削除する
  • sshで接続する(パスワードはvagrant)
    >vagrant ssh eclipse411
    $ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            2.0G     0  2.0G   0% /dev
    tmpfs           395M  596K  394M   1% /run
    /dev/sda1       9.7G  7.0G  2.7G  73% /
    tmpfs           2.0G     0  2.0G   0% /dev/shm
    tmpfs           5.0M     0  5.0M   0% /run/lock
    tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
    tmpfs           512M  8.0K  512M   1% /tmp
    vagrant         3.7T  1.7T  2.0T  46% /vagrant
    tmpfs           395M     0  395M   0% /run/user/1000 
    
  • HOMEにあるSDKファイルを削除する
    $ ls
    eclipse  eclipse-SDK-4.11-linux-gtk-x86_64.tar.gz  eclipse_env  install_plugins  mirror_site  pkg_install_ubuntu.sh  public_html
    $ rm eclipse-SDK-4.11-linux-gtk-x86_64.tar.gz
    
  • 続けて下記を実行し、不要ファイルを削除する
    $ sudo apt clean
    $ sudo rm -rf /var/lib/apt/lists/*
    $ sudo rm -rf /tmp/* /var/tmp/*
    $ sudo rm -rf /var/log/*
    $ sudo umount /vagrant
    
  • パッケージ化する直前に仮想ハードディスクをゼロで埋めて、ゼロで埋まったファイルを削除する。
    こうすることで、フラグメンテーションの問題が解決され、圧縮率が上がるとのこと。
    参考: http://www.ajisaba.net/develop/vagrant/box_create.html
    $ sudo dd if=/dev/zero of=/EMPTY bs=1M
    dd: error writing '/EMPTY': No space left on device
    32458+0 records in
    32457+0 records out
    34033786880 bytes (34 GB, 32 GiB) copied, 76.9463 s, 442 MB/s
    $ sudo rm -f /EMPTY
    
  • VM環境を終了する
    $ exit
    >vagrant halt
    
  • box名は openrtp20-eclipse411.box とし、カレントディレクトリに生成する
    >vagrant package eclipse411 --output openrtp20-eclipse411.box