Xapian を Windows上のBitnami 環境でインストール

とある事情で、redmineをWindows 7 PC (32bit !!)上で動かす必要があり、アップロードした文書ファイルを検索できるようにするために長い道のりが始まった。

Redmineのインストール

楽するために、Bitnami Redmine Installerをダウンロードして実行。手順はこちらなどを参照。
今回インストールしたものはRedmine-3.1.1-1だが、IEで表示できないなどのバグがある場合があるので Redmine-3.2-xのほうがよさそう。

dmsf pluginのインストール

文書管理のプラグイン dmsf をインストール。Redmine2.0にファイル管理プラグインを導入~redmine_dmsf 等を参照しながらインストール。

githubに認証プロキシ越しに接続する必要があったため、以下のような環境設定を設定して、git cloneした。

# set HTTP_PROXY=http://USERNAME:PASSWORD@10.xx.yy.zz:PORT
# git clone http://github.com/danmunn/redmine_dmsf.git

xapianのインストール

Bitnami Redmine Stackコマンドプロンプトで gem install xapian-full などとするとコンパイルエラーになる。Rakefile 中の system でのコマンド起動の際に、cmd.exe が使用されるため、./configure がエラーになって実行できないため。RUBYSHELL で bash.exe を指定してもだめ。ruby のソースを見ると win32.c の中で RUBYSHELL が参照されるのは system 関数の引数に redirection があるときで、そうでない場合には COMSPEC で指定されるcmd.exe が呼ばれる。そのため、./configureを実行できないためエラーになると思われる。というわけで、xapianをソースからビルドすることにする。

Bitnami Redmineをインストールすると、rubyの開発環境である DevKit が一緒にインストールされる。コンパイルが動くようにするために、追加でいくつかコマンド等をインストール。(後で書く)

ソースの取得

Official site から取得。xapian-core, xapian-bindings, xapian-omega を取得。

xapian-coreのインストール

展開、configure, make, make install でインストールできる。

# tar xvfz xapian-core-1.2.23.tar.xz --lzma
# cd xapian-core-1.2.23
# ./configure --prefix=/usr
# make
# make install

xapian-bindingsのインストール

展開、configure, makeを試みる

# tar xvfz xapian-bindings-1.2.23.tar.xz --lzma
# cd xapian-bindings-1.2.23
# ./configure --prefix=/usr --with-ruby
# make

soファイルのリンクに失敗したまま最後まで行くので、手動でsoファイルを作って、再度make

# cd ruby
# /bin/sh ../libtool --tag=CXX --mode=link g++ -fno-strict-aliasing \
-Wall -Wno-unused -Wno-uninitialized -fvisibility=hidden -g -O2 \
-avoid-version -module -shrext ".so" -no-undefined -o _xapian.la \
-rpath \
c:/Bitnami/redmine-3.1.1-1/ruby/lib/ruby/site_ruby/2.0.0/i386-msvcrt \
xapian_wrap.lo -Wl,--enable-runtime-pseudo-reloc \
/usr/lib/libxapian.la -static-libstdc++ -lstdc++ \
-LC:/Bitnami/redmine-3.1.1-1/ruby/lib -lmsvcrt-ruby200
# cd ..
# make
# make install

PCREのインストール

pcreのソースをオフィシャルサイトから取得して、展開、configure, make, make install

# tar xvfz pcre-8.38.tar.bz2
# cd pcre-8.38
# sh ./configure --prefix=/usr
# make
# make test
# make install

make testは一部通らないが、メモリ不足と、フランス語Localeの問題のようなので、とりあえず無視することにした。

xapian-omegaのインストール

# tar xvfz xapian-omega-1.2.23.tar.xz --lzma
# cd xapian-omega-1.2.23
# sh ./configure --prefix=/usr
# make PCRE_CFLAGS=-I/usr/include XAPIAN_CXXFLAGS=-I/usr/include
# make install

ライブラリをコピー

このままだとdmsf pluginからxapianが使えるようになっていない、と言われる。xapian.rb ⇒ _xapian.so から呼ばれるDLLが見つからないことが原因なので、ライブラリをRAILSから Pathが通っているところにコピーする。

面倒なので、C:\Bitnami\redmine-3.1.1-1\ruby\bin に以下のライブラリをコピーすることでしのぐ

  • libxapian-22.dll
  • msvcrt-ruby200.dll
  • libgcc_s_sjlj-1.dll
カテゴリー: Install, Windows パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です