sentencepieceをsudo権限のない環境に入れたかった
結論:sudo環境のある所で入れよう…(protobufのインストール以外は滞りなくできた)
https://github.com/google/sentencepiece
最初の
sudo apt-get install autoconf automake libtool libprotobuf9v5 protobuf-compiler libprotobuf-dev
は
apt-get source autoconf automake libtool libprotobuf9v5 protobuf-compiler libprotobuf-dev
でひとつずつインストール
automakeを入れる時に「autoinfoがない」と怒られたので、texinfoを入れる
しかし、今度は
configure: error: gettext required
と謎の怒られ方をする
http://www.lifewithunix.jp/notes/2013/11/25/freebsd-help2man-configure-error-perl-module-localegettext-required/
これに従ってgettextを自分の所に入れ直してみる→入った
順にautoinfo→automakeと入れ直すことでOK
configureの段階で
PKG_CHECK_MODULES(PROTOBUF, protobuf >= 2.4.0)
の部分で
./configure: line 17103: syntax error near unexpected token `PROTOBUF,' ./configure: line 17103: `PKG_CHECK_MODULES(PROTOBUF, protobuf >= 2.4.0)'
と怒られる
https://rcmdnk.com/blog/2014/12/30/computer-automake/
/home/USER/usr/local/share/aclocal/pkg.m4が存在していないのでPKG_CHECK_MODULESが定義されていない?
→ http://blog.k-tai-douga.com/article/52368303.html より、pkg.m4をコピーした
通ったが、今度は「protobufがない」と怒られた
http://d.hatena.ne.jp/torazuka/20111204/protobuf
こちらを参考にしたところ、たしかに自分の入れたprotobufが参照されていなかったのでPKG_CONFIG_PATHに追加した
これでconfigureまでは通った
しかし、今度はmakeが通らない
g++ -DHAVE_CONFIG_H -I. -I.. -std=c++11 -Wall -O3 -pthread -I/home/lr/matsunag/usr/include -MT builder.o -MD -MP -MF .deps/builder.Tpo -c -o builder.o builder.cc In file included from builder.h:22:0, from builder.cc:15: sentencepiece_model.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is #error This file was generated by a newer version of protoc which is ^ sentencepiece_model.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update #error incompatible with your Protocol Buffer headers. Please update ^ sentencepiece_model.pb.h:14:2: error: #error your headers. #error your headers. ^ In file included from builder.h:22:0, from builder.cc:15: sentencepiece_model.pb.h:23:35: fatal error: google/protobuf/arena.h: そのようなファイルやディレクトリはありません
調べてみると、apt-getによるprotobufはoutdatedだという説があった
https://github.com/BVLC/caffe/issues/4988
ので、
https://github.com/google/protobuf/releases/
から入れ直してみたが
In file included from builder.h:22:0, from builder.cc:15: sentencepiece_model.pb.h:17:2: error: #error This file was generated by an older version of protoc which is #error This file was generated by an older version of protoc which is ^ sentencepiece_model.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please #error incompatible with your Protocol Buffer headers. Please ^ sentencepiece_model.pb.h:19:2: error: #error regenerate this file with a newer version of protoc. #error regenerate this file with a newer version of protoc. ^ Makefile:903: ターゲット 'builder.o' のレシピで失敗しました
とまた怒られたので、とりあえず諦めた