有馬総一郎のブログ

(彼氏の事情)

Subsonic構築への道 その5(Subsonic 導入 ソースコンパイル編)

実は(?)、debパッケージファイルから導入しただけだと、ファイルをWindowsからダウンロードした時にファイル名が文字化けを起こす(vista、xp、7で確認)。

なので、ソースを一部修正することにする。 ソースを取得。

$ wget http://sourceforge.net/projects/subsonic/files/subsonic/4.6/subsonic-4.6-src.zip

有馬総一郎のブログ ブラウザで見るとここ

zipを解凍するためのunzipをインストール

$ sudo apt-get install unzip

zipファイルをオプション-dで指定したディレトリに展開(ディレクトリは自動作成)

$unzip subsonic-4.6-src.zip -d subsonic-4.6-src

※どこを直したかは後日、記述する。

実はコンパイルの仕方は
http://sourceforge.net/apps/mediawiki/subsonic/index.php?title=Windows_Source
に記述されている。
Windows版しかないが、ファイルを落として解凍して、パスを通して、コマンド叩く、という流れは全く一緒だ。

まず、動かすだけじゃなく(JRE)コンパイルするためのJava(JDK)をインストール

$ sudo apt-get install openjdk-6-jdk

ソースからコンパイルするためのmavenをダウンロード

$ wget http://ftp.heanet.ie/mirrors/www.apache.org/dist//maven/binaries/apache-maven-3.0.4-bin.tar.gz

tar.gzファイルを解凍

$ tar -xzvf apache-maven-3.0.4-bin.tar.gz

mavenディレクトリを作成して、格納

$ sudo mkdir /usr/local/apache-maven
$ sudo cp -R apache-maven-3.0.4 /usr/local/apache-maven/

パスを通す。環境変数を編集。

/etc/environment
1
2
3
4
5
6
7
@@ -1 +1,5 @@
-PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
+PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/apache-maven/apache-maven-3.0.4/bin"
+JAVA_HOME="/usr/lib/jvm/java-1.6.0-openjdk-i386"
+M2_HOME="/usr/local/apache-maven/apache-maven-3.0.4"
+MAVEN_HOME="/usr/local/apache-maven/apache-maven-3.0.4"
+M2="/usr/local/apache-maven/apache-maven-3.0.4/bin"

末尾に:/usr/local/apache-maven/apache-maven-3.0.4/binを追記
そして、以下を追加。

JAVA_HOME="/usr/lib/jvm/java-1.6.0-openjdk-i386"
M2_HOME="/usr/local/apache-maven/apache-maven-3.0.4"
MAVEN_HOME="/usr/local/apache-maven/apache-maven-3.0.4"
M2="/usr/local/apache-maven/apache-maven-3.0.4/bin"

環境変数を反映(rebootした方が本当良いみたい)

$ source /etc/environment

ソースディレクトリのアクセス権限が変になっていると、途中でコケるので・・・(どうもあちこちからコンパイルに必要なファイルをかき集めてコンパイルするようで、かき集めたファイルをソースディレクトリに作成できないとエラーになる)

$ sudo chmod -R 777 subsonic-4.6-src/
$ cd subsonic-4.6-src/
$ mvn install

[INFO] --- maven-install-plugin:2.3.1:install (default-install) @
subsonic-main ---
[INFO] Installing
/home/[ログインユーザ]/subsonic-4.6-src/subsonic-main/target/subsonic.war
to
/home/[ログインユーザ]/.m2/repository/net/sourceforge/subsonic/subsonic-main/4.6/subsonic-main-4.6.war
[INFO] Installing
/home/[ログインユーザ]/subsonic-4.6-src/subsonic-main/pom.xml to
/home/[ログインユーザ]/.m2/repository/net/sourceforge/subsonic/subsonic-main/4.6/subsonic-main-4.6.pom
[INFO]
------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Subsonic .......................................... SUCCESS
[2.485s]
[INFO] Subsonic Main ..................................... SUCCESS
[1:08.708s]
[INFO]
------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 1:11.369s
[INFO] Finished at: Tue Jun 19 22:08:07 JST 2012
[INFO] Final Memory: 23M/185M
[INFO]
------------------------------------------------------------------------

BUILD SUCCESSとなれば成功。

Unable to locate the Javac Compiler in:
/usr/lib/jvm/java-6-openjdk-i386/bin/../lib//tools.jar

みたいな失敗した場合、echo $JAVA_HOMEと打ってみて、 JAVA_HOMEが設定されているか?パスが正しく設定されているか?を確認。

JAVA_HOME配下に /lib/tools.jarがあるか?ない場合は、

$ sudo apt-get install openjdk-6-jdk

をしていない可能性がある。 openjdk-6-jreではない、 openjdk-6-jdkである。

$ cd subsonic-main/target
$ ls

subsonic.warが出来ている。

-rw-rw-r-- 1 [ログインユーザ] [ログインユーザ] 18964286 6月 19 22:08 subsonic.war

思ったより長くなったので今日はここまで。

Comments