まずは適当にインスタンスを用意しましょう。
今回はAWSで作ることにしました。
AWSインスタンスの入手
OS:AmazonLinux
インスタンスタイプ:t2.micro
インスタンスストレージ:30G
まあまあ用量を食うので30Gまでストレージをつけておきます。
出来上がったら適当につないでさっそく環境作りに取り掛かります。
OSは何でもよいと思いますが、本家のマニュアルやネットの事例はUbuntuというかDebian系が多かったのであえてのRedhat系でやってみました。
AWS Linuxの環境整備
sudo yum install gcc-c++ sudo yum install git
そしてソースコードをClone
git clone https://github.com/bitcoin/bitcoin.git
さてdoc/build-unixを見ると必要ライブラリが書かれているので入れていきましょう。
必須ライブラリ系
sudo yum install libssl sudo yum install libboost sudo yum install libevent
オプショナル
sudo yum install miniupnpc sudo yum install libdb4.8 sudo yum install qt sudo yum install protobuf sudo yum install libqrencode sudo yum install libzmq3
その他AmazonLinuxには必要なもの
sudo yum install autoconf sudo yum install automake sudo yum install libtool sudo yum install gcc-c++ make sudo yum install boost-devel sudo yum install db4-devel sudo yum install openssl-devel sudo yum install rpm-build sudo yum install lynx sudo yum install python-devel sudo yum install miniupnpc sudo yum install miniupnpc-devel.i686 sudo yum install libdb-cxx.i686 sudo yum install libdb-cxx-devel.i686 sudo yum install libevent sudo yum install libevent-devel
僕はLinux詳しくないのでなぜかは知りませんがAmazonLinuxでは以下のようなMakeファイル系の便利コマンドが入っていないのですよね。
autoreconf (autoconfで入る)
aclocal (automakeで入る)
まあいいか
さらにマニュアルに従ってBerkeley DBを入れてビルドします。
doc/build-unixを忠実に実施。
BITCOIN_ROOT=$(pwd) # Pick some path to install BDB to, here we create a directory within the bitcoin directory BDB_PREFIX="${BITCOIN_ROOT}/db4" mkdir -p $BDB_PREFIX # Fetch the source and verify that it is not tampered with wget 'http://download.oracle.com/berkeley-db/db-4.8.30.NC.tar.gz' echo '12edc0df75bf9abd7f82f821795bcee50f42cb2e5f76a6a281b85732798364ef db-4.8.30.NC.tar.gz' | sha256sum -c # -> db-4.8.30.NC.tar.gz: OK tar -xzvf db-4.8.30.NC.tar.gz # Build the library and install to our prefix cd db-4.8.30.NC/build_unix/ # Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX make install # Configure Bitcoin Core to use our own-built instance of BDB cd $BITCOIN_ROOT
終わったらやってみましょう。
sudo ./autogen.sh sudo ./configure LDFLAGS="-L${BDB_PREFIX}/lib/" CPPFLAGS="-I${BDB_PREFIX}/include/" # (other args...) sudo make
ドキドキしながら待ちましょう。...
とまっていたらいやなかんじでおちた。
g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <http://bugzilla.redhat.com/bugzilla> for instructions. make[2]: *** [libbitcoin_server_a-main.o] Error 4 make[2]: Leaving directory `/home/ec2-user/work/bitcoin/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/ec2-user/work/bitcoin/src' make: *** [all-recursive] Error 1 [ec2-user@ip-172-31-18-152 bitcoin]$
メモリ不足だろうということでスワップを追加します。
$ sudo -s # fallocate -l 1024m /tmp/swap.img # mkswap /tmp/swap.img # chmod 600 /tmp/swap.img # swapon /tmp/swap.img $ free total used free shared buffers cached Mem: 1019452 67396 952056 64 3240 14956 -/+ buffers/cache: 49200 970252 Swap: 1048572 0 1048572
うむ。追加できた。
さてもっかい
sudo make
成功!めでたくインストール
sudo make install $ ls /usr/local/bin/bitcoin* /usr/local/bin/bitcoin-cli /usr/local/bin/bitcoind /usr/local/bin/bitcoin-tx
できましたー。
さて次からは起動させていきたいと思います。