Kouhei Sutou
kou****@clear*****
2015年 5月 21日 (木) 16:40:05 JST
須藤です。 In <CANehQUgVeNJNFreEuMnxA1Smuoj=aSzCP****@mail*****> "[groonga-dev,03252] Re: makeできない" on Wed, 20 May 2015 13:38:36 +0900, <fbnte****@gmail*****> wrote: > egccのインストールの仕方が恐らく間違っているのではないかと思い、 > パッケージからインストールしてみたした。 > ですが、あまり変わりませんでした。 そうですか。。。 > 2015.05.20のものをデバッグなしで試してみて、 > 最終的には以下のようになりました。 > egcc-cmake→一番良い?エラー表示は Can't load library 'libgroonga.so' > egcc-configure→エラー表示なしで正常に動作しない。 > default-cmake→エラー表示は Can't load library 'libgroonga.so' > default-configure→ビルドエラー 「Can't load library 'libgroonga.so'」はライブラリーのロード パスが通っていないことが原因なんですよ。(普通のシステムは危 ないので/tmp/local/lib/にあるライブラリーをロードしようとはし ない。) なので、手動でパスを通すために % LD_LIBRARY_PATH=/tmp/local/lib /tmp/local/bin/groonga とする必要があります。 % cmake とした場合は/usr/local/lib/にlibgroonga.soがインストールされ ますが、/usr/local/lib/はデフォルトでライブラリーのロードパ スに入っているので % /usr/local/bin/groonga でlibgroonga.soを見つけることができます。 一方、 % cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/groonga のように/usr/local/lib/以外のところにインストールした場合は /etc/rc.conf.localに shlib_dirs=/usr/local/groonga/lib と書いて再起動すると/usr/local/groonga/libがロードパスに入る のでLD_LIBRARY_PATHなしの % /usr/local/groonga/bin/groonga で起動できると思います。 shlib_dirsはldconfig(8)のENVIRONMENTに書いてありました。 > ただし、それは再起動せずに何回もインストール作業をすればでした。 > よくわかりません。 > もうこれでいいような気がしてきました。 まぁ、これだけ試行錯誤したらくじけますよね。。。 > とりあえず今のところわかる、 > 安定してコンパイルするやり方は以下のようにするといいとわかりました。 > ・groongaは最新のnightlyを使う > ・configureの代わりにcmakeを使う > ・makeの代わりにgmakeを使う > ・make installの代わりにgmake installを使う まとめ、ありがとうございます。 私が成功したパターンは次の通りです。 1. システムのGCC + configure % wget http://packages.groonga.org/nightly/groonga-5.0.3.2015.05.21.tar.gz % gtar xvf groonga-5.0.3.2015.05.21.tar.gz % cd groonga-5.0.3.2015.05.21 % ./configure --enable-shared-onigmo % sudo pkg_add gmake % sudo bash -c "ulimit -d unlimited; sudo -u $USER -H gmake" % sudo gmake install 2. システムのGCC + CMake % wget http://packages.groonga.org/nightly/groonga-5.0.3.2015.05.21.tar.gz % gtar xvf groonga-5.0.3.2015.05.21.tar.gz % cd groonga-5.0.3.2015.05.21 % sudo pkg_add cmake % cmake . % sudo pkg_add gmake % sudo bash -c "ulimit -d unlimited; sudo -u $USER -H gmake" % sudo gmake install > あと、何回もやっていたのですがコンパイル処理が重い気がします。 > > cmakeとninjaでコンパイルするのが軽いらしいので、 > 将来的に対応してもらえるとありがたいです。(できればclangとかも) すでにNinjaでもビルドできるようになっているっぽいです。 私はこれで動きました。 % wget http://packages.groonga.org/nightly/groonga-5.0.3.2015.05.21.tar.gz % gtar xvf groonga-5.0.3.2015.05.21.tar.gz % cd groonga-5.0.3.2015.05.21 % sudo pkg_add cmake ninja % cmake . -G Ninja % ninja % sudo gmake install clangはFreeBSDとか他のBSD系のプラットフォームだと動いている んですよねぇ。OpenBSDだと動かないのはどうしてかしら。。。 -- 須藤功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ プログラミングが好きな学生のための勉強会: http://www.seplus.jp/sezemi/