あらすじ
前回の続き
今までの流れの概略
- protobuf-c をコンパイルしようと思ったら Windows 上ではうまくいかなかった
- →Ubuntu 環境だったらうまくいくのではと思い、 Docker (Docker ToolBox)を導入してみた
- →Ubuntu のイメージを、 protobuf-c コンパイル用にカスタマイズするために Dockerfile を用意した
- →protobuf-c をコンパイルするために、本家 Protobuf が必要なのだが、 Ubuntu 用のパッケージはバージョンが古い(protobuf ver2.6.1)。protobuf-c ver1.30 に互換性問題があり、 protobuf ver3.X 以降でないと、 protobuf-c をコンパイルできない
- →protobuf ver3.X(最新版)を自分でコンパイル/インストールする
今回の目標
ということで、今回は本家 protobuf ver3.X をインストールする
protobuf をインストールするまでの手順
基本的には以下の Readme に従う。
git hub からリポジトリをクローンする
git hub のリポジトリからクローンする。
root@e834aae66aee:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var work
root@e834aae66aee:/# cd work
root@e834aae66aee:/work# git clone https://github.com/google/protobuf.git
Cloning into 'protobuf'...
remote: Counting objects: 50405, done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 50405 (delta 5), reused 6 (delta 3), pack-reused 50392
Receiving objects: 100% (50405/50405), 44.17 MiB | 126.00 KiB/s, done.
Resolving deltas: 100% (33940/33940), done.
Checking connectivity... done.
Checking out files: 100% (1952/1952), done.
補足
一応、データ永続化用の共有フォルダにクローンすると、Windows であれば tortoise git とかの GUIで git 操作でき、Ubuntu と Windows のいいとこどりができる。
ちなみに、こういう永続化領域を Data Volume
というらしい。
コンフィグスクリプトを生成する
クローンしたら、 ./autogen.sh
を実行しなければいけないらしい。
root@e834aae66aee:/work# cd protobuf root@e834aae66aee:/work/protobuf# ./autogen.sh
補足
Readme に You can skip this step if you are using a release package (which already contains gmock and the configure script).
とあるので、もしかしたらコンパイルするだけなら上記コンフィグスクリプトは不要かもしれない。
コンパイルとインストール
Readmeによると、以下を実行するとのこと。
$ ./configure
$ make
$ make check
$ sudo make install
$ sudo ldconfig
Readmeには、環境によっては追加でいろいろやらないとコンパイルが通らないことがあるとのことだけど、私の環境では上記でコンパイル/インストールが成功したっぽい。
補足
make と make check は激遅です。無限ループしてるんじゃないかってくらい、同じようなビルドログが出力され続けて終わりません。私の環境でそれぞれ20分以上かかりました。
インストール確認
protoc --version
が正常にできればとりあえずインストールはOKと思われる。
root@e834aae66aee:/work/protobuf# protoc --version
libprotoc 3.5.1
とりあえず protobuf のインストールまでできた。
次回は protobuf-c のインストールについてまとめる。
別のインストール方法
github に Ubuntu で protobuf ver3.X をインストールすることを題材として issue を見つけた。
これによると、
https://github.com/google/protobuf/releases/download/v3.4.0/protoc-3.4.0-linux-x86_64.zip
でも入手してインストールできるみたい。
一応備忘録として残しておく。
コメント