Fedora Core 3 で Apache Forrest を使おうとしたら libawt.so が依存しているライブラリ libXp.so.6 がないということでエラーになった。J2SE 5.0 を使うときはいらないようですが、J2SE 1.4 だと必要なのですが、Fedora Core 3 以降は標準では入らないらしい。ということで、xorg-x11-deprecated-libs をインストールした。
# ldd /usr/local/j2sdk1.4.2_08/jre/lib/i386/libawt.so
libmlib_image.so => not found
libjvm.so => not found
libXp.so.6 => /usr/X11R6/lib/libXp.so.6 (0x40317000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x4031f000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40370000)
libXtst.so.6 => /usr/X11R6/lib/libXtst.so.6 (0x4037e000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40383000)
libm.so.6 => /lib/libm.so.6 (0x4044b000)
libdl.so.2 => /lib/libdl.so.2 (0x4046e000)
libjava.so => not found
libc.so.6 => /lib/libc.so.6 (0x40472000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40584000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4058c000)
/lib/ld-linux.so.2 (0x80000000)
# yum install xorg-x11-deprecated-libs
# ldd /usr/local/j2sdk1.4.2_08/jre/lib/i386/libawt.so
libmlib_image.so => not found
libjvm.so => not found
libXp.so.6 => /usr/X11R6/lib/libXp.so.6 (0x40317000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x4031f000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40370000)
libXtst.so.6 => /usr/X11R6/lib/libXtst.so.6 (0x4037e000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40383000)
libm.so.6 => /lib/libm.so.6 (0x4044b000)
libdl.so.2 => /lib/libdl.so.2 (0x4046e000)
libjava.so => not found
libc.so.6 => /lib/libc.so.6 (0x40472000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40584000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4058c000)
/lib/ld-linux.so.2 (0x80000000)
libmlib_image.so => not found
libjvm.so => not found
libXp.so.6 => /usr/X11R6/lib/libXp.so.6 (0x40317000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x4031f000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40370000)
libXtst.so.6 => /usr/X11R6/lib/libXtst.so.6 (0x4037e000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40383000)
libm.so.6 => /lib/libm.so.6 (0x4044b000)
libdl.so.2 => /lib/libdl.so.2 (0x4046e000)
libjava.so => not found
libc.so.6 => /lib/libc.so.6 (0x40472000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40584000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4058c000)
/lib/ld-linux.so.2 (0x80000000)
# yum install xorg-x11-deprecated-libs
# ldd /usr/local/j2sdk1.4.2_08/jre/lib/i386/libawt.so
libmlib_image.so => not found
libjvm.so => not found
libXp.so.6 => /usr/X11R6/lib/libXp.so.6 (0x40317000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x4031f000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40370000)
libXtst.so.6 => /usr/X11R6/lib/libXtst.so.6 (0x4037e000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40383000)
libm.so.6 => /lib/libm.so.6 (0x4044b000)
libdl.so.2 => /lib/libdl.so.2 (0x4046e000)
libjava.so => not found
libc.so.6 => /lib/libc.so.6 (0x40472000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40584000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x4058c000)
/lib/ld-linux.so.2 (0x80000000)
今度は、Xサーバへ接続できないというエラーがでて停止してしまった。Apache Forrest って X サーバが動作していないといくつかの画像ファイルを生成できないような雰囲気。とりあえず手順は次の通り。/usr/local/forrestへForrestをインストールしています。forrest run で Jettyが起動して http://localhost:8888/ へアクセスするとできあがったページを参照することができます。
# cd /usr/local/forrest/site-author
# JAVA_HOME=/usr/local/jdk ../bin/forrest
# JAVA_HOME=/usr/local/jdk ../bin/forrest run
# JAVA_HOME=/usr/local/jdk ../bin/forrest
# JAVA_HOME=/usr/local/jdk ../bin/forrest run
最初に用意されているページではなくて独自のページを作りたいときは、次のようにしてテンプレートディレクトリとファイルを生成すれば良いようです。
# JAVA_HOME=/usr/local/jdk /usr/local/forrest/bin/forrest seed
[追記]
どうやらオプションでheadlessモードを指定できるようです。
$ forrest -Dforrest.jvmargs=-Djava.awt.headless=true
Xvfbによる回避方法もあるようです。
$ Xvfb :1 0 600x480x24 &
$ export DISPLAY=:1
$ export DISPLAY=:1