とある事情で、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