2014年03月08日

Vagrantでmonacoin環境作成

早速monacoin用の仮想環境を作るぜ。作り方は、最近楽しくいじってるVagrantで。
 
まずは仮想環境の構築

まずは外付けHDDの任意の箇所で

vagrant init
vi Vagtrantfile

で、設定ファイルを編集

config.vm.network :bridged

こちらのコメントアウトをはずす。これでvagrantに作った仮想マシンが外部にアクセスできる

続いてvagrant環境にvagrant sshでアクセスし、monacoinのgithubからソースコードをダウンロード

git clone https://github.com/monacoinproject/monacoin

あと、ここのサイトを参考に、必要となるライブラリをインストール

http://qiita.com/monapay/items/8642ea58e7d959e380c2

sudo
apt-get install git git-core build-essential libssl-dev libdb++-dev
libminiupnpc-dev libboost-dev libboost-system-dev
libboost-filesystem-dev libboost-program-options-dev libboost-thread-dev
で、monacoin/src/に移動して

make -f makefile.unix

を実行すればいいだけだ・・・・が!

体感booooooost!!

どうも何度やってもビルドに失敗するなーーーって思ってた。こんなエラー出る。

g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.8/README.Bugs> for instructions.
make: *** [obj/alert.o] Error 4

不審に思って「(program cc1plus)」とかでググると

https://bitcointalk.org/index.php?topic=304389.0

Sounds as if your out of memory try adding even more swap space.

俺的超訳 : メモリ領域を使い切ってるみたいだからスワップ領域を増やしてみたら

ってええええ?ビルドするだけなのにメモリ足りないの?
翻って、monacoinのビルドを説明しているサイトを見てみると、monacoinはboostというライブラリを使っていて、
これがビルドするのにものすごい時間がかかるみたい。(通称boooooost。oは書く人が好きなだけ並べる)
時間がかかるだけでなくどうやらメモリもものすごく消費するみたいで、仮想環境では間に合わないようだ。

ではしょうがない、ビルドだけは親マシンでやろう。どっちもubuntuだから問題無いに違いない

体感booooooost!!

また同じサブタイトルじゃん・・・というわけで、親マシンでビルドしても同じ罠に引っかかった。
夜寝る前にビルドしといて、朝ビルド結果を確認しようとしたら、puttyがタイムアウトで通信停止してた。
いや、別に端末がタイムアウトしててもビルドは続いてるだろと思ったら甘かった。
コンソールがexitしたらどうやらビルドも停止するらしい。

あ、Ctrl+Cを押したと同じ状況になってるの?

うわあ、またbooooooostの罠にかかったじゃん!(oの数は一貫してるだろうか。俺は全く自信ない)
puttyがタイムアウトしてもビルドは続行するようにできないのかな?なんかバックグラウンドのmakeとかないの?
と、思ったけど、ちょっと面白い解決方法を思いついた。

応用screenコマンド

screenというコマンドがlinuxにある。本来は端末内で仮想的に端末を複数作ったり、
他人が端末の操作を引き継いだりすることができるものらしい。
これを利用すればboooooostの罠を突破できるんじゃね?というわけでさっそくscreenをインストールして実行!

screen

コマンドはこれだけ。これで仮想端末がもう一個立ち上がるので

make -f makefile.unix

もう一回メイクしておいて

Ctrl-A Ctrl-D

で、デタッチ(端末から一次離脱)する。これで一晩待てばビルド完了!(実際できました)

さて、続いては親マシンでビルドしたmonacoinを仮想マシンに持って行くぞ。

ラベル:Vagrant
posted by LoyalTouch at 07:21| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック