ソースコード検索をしたくなって先日Gonziuiをインストールしてみた結果、Perlのパッケージへの対応が不十分な様子だったので今度はOpenGrokをインストールしてみた。
日本語の紹介記事
http://sakplus.jp/2010/05/28/opengrok/
OpenGrokのホームページ
http://hub.opensolaris.org/bin/view/Project+opengrok/WebHome
まず事前にctagsとjavaとTomcatをインストールしておく。今回は、JDK1.6を/usr/local/java/jdk1.6.0_24に(/usr/local/java/currentにシンボリックリンク)、Tomcatを/home/tomcat/apache-tomcat-7.0.8にインストールした。
一応、antもインストールしておいた。
次に、opengrok-0.10.tar.gzをダウンロードして展開。
/home/tomcat/opengrok-0.10/
とした。ソースなどを置くデータ用のディレクトリとして、
/home/tomcat/opengrok_data
を作成しておいた。
環境変数は以下のように設定。
export PATH=/usr/local/java/current/bin:$PATH:/usr/local/java/lib/apache-ant-1.8.2/bin
export JAVA_HOME=/usr/local/java/current
export ANT_HOME=/usr/local/java/lib/apache-ant-1.8.2
export OPENGROK_TOMCAT_BASE=/home/tomcat/apache-tomcat-7.0.8
export OPENGROK_INSTANCE_BASE=/home/tomcat/opengrok_data
export EXUBERANT_CTAGS=/usr/bin/ctags
また、~/apache-tomcat-7.0.8/conf/server.xml内のポート番号8080を2424に変更しておく。
次にインデックス作成
cd opengrok-0.10/bin
./OpenGrok index
次にデプロイ
./OpenGrok deploy
http://[ホスト]:2424/sourceにアクセスすると、インストールができていれば検索フォームが表示される。ただ、ここで検索するとエラーになって(NullPointerExceptionだったかな?)、catalina.outには以下のようなエラーログが残っていた。どうやらconfigration.xmlは/var/opengrok/etc以下にないといけないようだ。(追記参照2011-03-16)
java.io.FileNotFoundException: /var/opengrok/etc/configuration.xml (No such file or directory)
環境変数を色々設定して試してみても駄目そうだったので、以下のようにしてシンボリックリンクを作成。
ln -s /home/tomcat/opengrok_data/etc/configuration.xml /var/opengrok/etc/configuration.xml
これで、念のため再度インデックスとデプロイをすると、検索もちゃんと機能するようになった。PerlもOKだし、日本語もOKだし、Perlのパッケージ名もOKだ。
-------
2011-03-16追記
configuration.xmlの置き場所を変更するには、まず${CATALILNA_HOME}/webapps/source/WEB-INF/web.xmlの以下のような箇所を変更する。
<param-name>CONFIGURATION</param-name>
<param-value>/var/opengrok/etc/configuration.xml</param-value>
次にzipコマンドでwarファイルを更新。
zip -u ../source.war WEB-INF/web.xml
これでOK。(webapps/source/は一度削除した方がいい?)
一応環境変数も設定しておく(効果ある?)
export READ_XML_CONFIGURATION=/home/opengrok/opengrok_data/etc/configuration.xml
※コメント投稿者のブログIDはブログ作成者のみに通知されます