HyperledgerをUbuntu上でビルドする
公式ドキュメントが色々と不親切なので書いておく。
ちなみに公式はこちら。
Prerequisites — hyperledger-fabricdocs master documentation
VMにUbuntu16をインストールする
インストール方法はISOイメージダウンロードしてマウントするだけなので省略します。余計なパッケージはインストールせず、素の状態でいれます。
インストール後、起動したらapt-geet updateに失敗するので、
$ sudo apt-get upgrade $ sudo reboot
rootパスワードを設定する
Hyperledgerのビルドはrootじゃないと失敗するっぽいので。
$ sudo su - # sudo passwd root
パスワードを設定する。
必要なパッケージをインストールする
とりあえずいれとくやつ
$ sudo apt-get install vim build-essential git ssh
Goをインストールする
Getting Started - The Go Programming Language
Goの公式を見に行くほうが早いが。ひとまず公式からアーカイブファイル(tar.gz)をダウンロードする。
$ tar -C /usr/local -xvzf go1.9.linux-amd64.tar.gz $ ls /usr/local/go/bin
あればOK。パスを設定する
vi ~/.bashrc
でひらいて末尾に
export GOPATH=/home/ユーザ名/go_root export GOROOT=/usr/local/go export PATH=$PATH:/usr/local/go/bin
と記述して保存。rootでも同じ事をするのを忘れないように。
その後、
$ mkdir -p ~/go_root $ source ~/.bashrc
GOはこれでおわり。
Docker CEをインストールする
Dockerはちゃんとドキュメント書いてくれてるのでその通りすればいい。
$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-exra-virtual $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88
問題ないことを確認する
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker..com/linux/ubuntu $(lsb_release -cs) stable" $ sudo apt-get update
レポジトリ追加したらupdateを忘れない。
$ sudo apt-get install docker-ce $ sudo docker run hello-world
エラーが出なければOK
docker-composeをインストール
$ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
1.16.1って表示されればOK。
pipをインストールする
Installation — pip 9.0.1 documentation
この通りやれば問題ない。
get-pip.pyをダウンロードする。
$ sudo apt-get install python python-dev python3-dev $ sudo python get-pip.py
書き込む場所的にsudoつけないとだめみたい。
PIPから必要なパッケージをインストールする
$ sudo pip install --upgrade $ sudo pip install behave nose $ sudo pip install -I flask==0.10.1 python-dateutil==2.2 pytz==2014.3 pyyaml==3.10 couchdb==1.0 flask-cors==2.0.1 requests==2.4.3 pyOpenSSL==16.2.0 pysha3==1.0b1 grpcio==1.0.4
python-dev, python3-devをインストールしてないとここでエラーが出るので注意。
Hyperledgerのソースコードをビルドする
$ mkdir -p $GOPATH/src/github.com/hyperledger $ cd $GOPATH/src/github.com/hypkerledger $ git clone https://github.com/hyperledger/fabric.git
ほんとはGerritからクローンしたいのだが、Linux Foundation IDがなぜかEmptyになってしまっておりできない…なのでReadonlyのレポジトリから取得。
$ cd fabric
ここからはroot権限で実行する
$ su -p $ make dist-clean all
Apache-2.0ライセンスがどうのこうのというエラーが出る場合は
$ make dist-clean peer orderer peer-docker orderer-docker tools-docker configtxgen cryptogen
でやる。詳しくは
stackoverflow.com
最後に忘れずにパスを追加する
fabric/build/binの下に色々できているのでPATHに追加する。.bashrcに追加するのが早いと思う
export PATH=$PATH:/usr/local/go/bin:$GO_PATH/src/github.com/hyperledger/fabric/build/bin