Hyper Estraierをインストールする(全文検索システム) | Solaris
- 2007.06.20
- Solaris
SolarisにHyper Estraier(全文検索システム)をインストールする。
【インストールマニュアル】
【全体の流れ】
- gcc、make のバージョンの確認
- ライブラリパスの確認
- 文字コード変換 libiconv のバージョンの確認、インストール
- 可逆データ圧縮 zlib のバージョンの確認、インストール
- 組み込み用データベース QDBM のバージョンの確認、インストール
- 検索エンジン Hyper Estraier のインストール
■LD_LIBRARY_PATHが通っているか確認する
echo $LD_LIBRARY_PATH してパスが表示されなかったら、実行しておく。
$ LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:/usr/sfw/lib $ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/dt/lib:/usr/openwin/lib $ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/xpg4/lib:/lib:/usr/ccs/lib $ export LD_LIBRARY_PATH
SPARCのときは、これだけ指定した記憶がある。x86-64 Solarisにインストールするときは、途中でmakeエラーが出て、crleを実行したりしてもがいてしまった。
■libiconvをインストールしておく
要求しているlibiconvのバージョンをHyper Estraierのインストールページで確認しておく。
パッケージをインストールした。パッケージは、www.sunfreeware.comからダウンロードする。
例えば、SPARK Solaris9用のものは、ここから。
http://www.sunfreeware.com/programlistsparc9.html#libiconv
http://www.sunfreeware.com/programlistsparc9.html#gcc34
libiconvが、gcc3.4.6を必要としているので、最初にダウンロードしてインストールする。
gcc 3.4.6
# gunzip gcc-3.4.6-sol9-sparc-local.gz # pkgadd -d gcc-3.4.6-sol9-sparc-local
libiconv 1.11
# gunzip libiconv-1.11-sol9-sparc-local.gz # pkgadd -d libiconv-1.11-sol9-sparc-local
gnuのソースからインストールする場合。
gnuのミラーサーバからゲットする。(GNUのサイトは混んでいるので、1MBのファイルとしてダウンロードされてしまったが、実際は4.3MBであるため。)
国内ミラー
http://core.ring.gr.jp/pub/GNU/libiconv/
libiconv 1.12
$ gunzip libiconv-1.12.tar.gz $ tar xvf libiconv-1.12.tar $ cd libiconv-1.12 $ ./configure --prefix=/usr/local # make # make install
■zlibをインストールしておく
zlibのダウンロード
$ tar zxvf zlib-1.2.3.tar.gz $ cd zlib-1.2.3 $ ./configure $ make # make install cp zlib.h zconf.h /usr/local/include chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h cp libz.a /usr/local/lib cd /usr/local/lib; chmod 755 libz.a cd /usr/local/lib; if test -f libz.so.1.2.3; then ¥ rm -f libz.so libz.so.1; ¥ ln -s libz.so.1.2.3 libz.so; ¥ ln -s libz.so.1.2.3 libz.so.1; ¥ (ldconfig || true) >/dev/null 2>&1; ¥ fi cp zlib.3 /usr/local/share/man/man3 chmod 644 /usr/local/share/man/man3/zlib.3
■QDBMをインストールしておく
SourceForgeからダウンロードする。
http://sourceforge.net/projects/qdbm/
QDBM 1.8.77
$ tar zxvf qdbm-1.8.77.tar.gz $ cd qdbm-1.8.77 $ ./configure --enable-zlib | tee configure.log 2>&1 $ make | tee make.log 2>&1 # make install | tee make-install.log 2>&1
作者のホームページから抜粋。
「QDBMをインストールする際には、zlibを有効化(./configure –enable-zlib)しておくことをお薦めします。その方がHyper Estraierの作るインデックスが小さくなります。」
ということで、zlibを有効化して、ログをとりながらインストールしてみました。
インストール後、ldd /usr/local/bin/dpmgr などとチェックして、ライブラリがきちんと指定されているかチェックするとよいです。ダメだったら、LD_LIBRARY_PATHを指定して直後にインストールする。
x86-64のSolaris10でmakeしたところ、このようなエラーが発生した。
ld: fatal: Symbol referencing errors. No output written to dpmgr collect2: ld returned 1 exit status make: *** [dpmgr] Error 1
最初からやり直してみた。ライブラリパスを毎回指定するのが面倒なので.profileに書いて、gcc, libiconv, zlibを上書きインストールしてから、qdbmのインストールに再チャレンジしたら上手くいった。なぜだ…。
■Hyper Estraierをインストールする
作者のホームページの指示通り作業する。
ダウンロードした容量が小さかった(不完全)ので、sourceforgeからダウンロードした。
http://sourceforge.net/projects/hyperestraier/
$ tar zxvf hyperestraier-1.4.13.tar.gz $ cd hyperestraier-1.4.13 $ ./configure (ビルド環境の設定) $ make (プログラムのビルド) $ make check (プログラムの自己診断テスト) # make install (プログラムのインストール)
(別サーバのSolaris9に入れるときは、make checkでError 2が最後に表示された。)
x86-64のSolaris10でmakeしたときにエラーが発生した。
Text relocation remains referenced against symbol offset in file crc_table 0x4 /usr/local/lib/libz.a(crc32.o) (中略...) memset 0x1028 /usr/local/lib/libz.a(deflate.o) memset 0x11e7 /usr/local/lib/libz.a(deflate.o) memset 0x1567 /usr/local/lib/libz.a(deflate.o) ld: fatal: relocations remain against allocatable but non-writable sections collect2: ld returned 1 exit status make: *** [libestraier.so.8.38.0] Error 1
/usr/local/lib/libz.a関連のメッセージがずらりと並んだ後に、makeエラー。
調べてみると、libz.aとしてインストールされている場合、リンカがエラーを起こすということなので、一時的にリネームしておく。/usr/local/lib/libz.a を無視して /usr/lib/libz.soを使わせるということかな…後で調べるっっっ。makeに成功して、make installした後で元通りリネームしておく。(参考ページ:Solaris 10 Mysql-5)
# mv /usr/local/lib/libz.a /usr/local/lib/_libz.a_
インストールされたバイナリがきちんとライブラリを指定できているか確認しておいた。
$ ldd /usr/local/bin/estcmd libestraier.so.8 => ./libestraier.so.8 libresolv.so.2 => /lib/libresolv.so.2 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 libpthread.so.1 => /lib/libpthread.so.1 libqdbm.so.14 => ./libqdbm.so.14 libz.so.1 => /usr/lib/libz.so.1 libiconv.so.2 => ./libiconv.so.2 libm.so.2 => /lib/libm.so.2 libc.so.1 => /lib/libc.so.1 libgcc_s.so.1 => ./libgcc_s.so.1 libmp.so.2 => /lib/libmp.so.2 libmd.so.1 => /lib/libmd.so.1 libscf.so.1 => /lib/libscf.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1
ちなみにMacにインストールするときは、
$ ./configure $ make mac $ make check-mac $ make install-mac
だそうです。
SPARCのSolaris9とSolaris10は、しゅるっとインストールできたけど、x86-64 Solaris 10 では苦労してしまった。
-
前の記事
Apple DVD Studio ProでDVDを作る(Tips) 2007.06.15
-
次の記事
Hyper Estraierを設定する(全文検索システム) | Solaris 2007.06.20