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' のレシピで失敗しました

とまた怒られたので、とりあえず諦めた