Build tomcat on solaris8
เนื่องจากมีงานตัวหนึ่งจำเป็นต้องทำ clone system กับ project นั้นจึงจำเป็นต้องมานั่งทำให้เหมือนที่สุดเท่าที่ทำได้ ซึ่งโดยปกติแล้วตัวเอง จะไม่ค่อยอยากจะ compile source เท่าไรนัก คราวนี้ถึงคราวจริงๆ เพราะลองไปดูจาก binary ของ jakarta project ของตัว solaris เอง มันค่อยข้างจะเก่าๆ เลยไม่ค่อยมั่นใจเท่าไร เลยทำเองเลยดีกว่า อันดับแรกลอง check จาก system ที่ตัวเองดูแลอยู่ ก็ Ok ในระดับหนึ่งเพราะมีการ update พวก lib ไปบ้างส่วนแล้ว ข้อมูลคร่าวๆ ของ system ที่ทำการ build
- OS: SunOS xxxxx 5.8 Generic_117350-19 sun4u sparc SUNW,UltraAX-i2 Solaris
- J2SE version 1.5.0_03-b07 64 Bit
- อันดับแรก install ant เพื่อไว้ build ตัว jakarta-tomcat สามารถหา download ได้ที่ Apache Ant download binary มาใช้งานเพื่อความสะดวก
$ wget http://apache.secsup.org/dist/ant/binaries/apache-ant-1.6.5-bin.tar.bz2
$ tar -jxvf apache-ant-1.6.5-bin.tar.bz2
$ su -
# mv apache-ant-1.6.5 /usr/share/java/
# ln -s apache-ant-1.6.5 ant - ทำการแก้ไข file /etc/profile ตามนี้
ANT_HOME="/export/home/ant"
จากนั้น load profile ที่แก้ไขเมื่อกี้ เพื่อให้ effective โดยสั่ง
PATH="$PATH:$ANT_HOME/bin"
export PATH ANT_HOME$ source /etc/profile
- download tomcat source มา compile เนื่องจาก version ที่เป็น binary นั้นค่อนข้างจะเก่าเลยเอามา build ใหม่ซะเลย
$ wget http://www.axint.net/apache/jakarta/tomcat-5/v5.5.9/src/jakarta-tomcat-5.5.9-src.tar.gz
หลังจากนี้ ant จำทำงานตาม build script ที่ตั้งไว้โดยจะไป download libraly ที่มันต้องการมาไว้ที่ /usr/share/java และหลังจากที่ ant ทำการ build เสร็จเรียบร้อยแล้ว มาขั้นตอนต่อไปเลย
$ tar -jxvf jakarta-tomcat-5.5.9-src.tar.gz
$ cd jakarta-tomcat-5.5.9-src
$ vi build.properties
-- build.properties --
# ----- Sourceforge files base location -----
base-sf.loc=http://jaist.dl.sourceforge.net/sourceforge
# อาจจะเป็น mirror ตัวอื่นก็ได้ตามสะดวก
$ su -
# ant build
- ขั้นตอนต่อไปเราจะทำการ build tomcat ให้เรียบร้อยกันซะที โดยสั่งตามนี้
# cd jakarta-tomcat-5
จากนั้น แก้ไขตามสะดวก แต่จะแก้หรือไม่แก้ก็ได้ หากไม่แก้ ไม่จำเป็นต้อง copy build.properties.default เป็น build.properties แต่ผมแก้ตรงส่วนของ compile.optimize=on ซะ จากนั้น เราจะทำการ build tomcat กันอีกครั้ง เนื่องจากครั้งแรกที่เราสั่ง ant ที่ Root ของ jakarta.source นั้นเป็นการเตรียม libraly ที่จำเป็นสำหรับการ build ไม่พูดพล่ามทำเพลง มาทำต่อเลยดีกว่า สั่งตามนี้
# cp build.properties.default build.properties
# ant build
จะมีข้อความขึ้นมามากมาย หลังจาก build เสร็จเรียบร้อยเราจะได้ directory ขึ้นมา 1 อันชื่อว่า build จริงๆ เราสามารถ run tomcat จาก directory build ได้เลยก็ได้ เรามาลองกัน
# cd build/bin
จากนั้น ลอง check จากคำสั่งต่างๆ ไม่ว่าจะเป็น netstat, lsof, ps หรืออะไรก็ได้ตามสะดวก แล้วลอง telnet หรือเข้าด้วย browser ดูว่าได้หรือไม่ ผมสรุปเอาว่าได้แล้วกัน
# ./startup.sh
- ต่อมา เราจะทำการ build distribution ซะ ให้มันเรียบร้อยหน่อย เหมือน binary ที่เค้าทำๆ กันทั่วไปนั้นล่ะ สั่งแบบนี้เลย (ปล. กรุณา cd กลับมาที่ $jakarta.source/jakarta-tomcat-5)
# ant dist
พอเสร็จ เราก็จะได้ directory มาเพิ่มอีกหนึ่งคือ dist จากนั้นให้เราทำการแก้ /etc/profile เพิ่มเติมคือ ให้เพิ่มค่า CATALINA_HOME="/usr/local/tomcat" และให้ สั่ง export ด้วย ดังตัวอย่าง (ไม่จำเป็นต้องเลียนแบบเหมือนทุกอย่าง ให้เอาไปประยุกต์เอาเอง)
JAVA_HOME="/usr/java"
ให้ทำการ copy directory นี้ไปที่ /usr/local/tomcat # cp dist /usr/local/tomcat
ANT_HOME="/export/home/ant"
CATALINA_HOME="/usr/local/tomcat"
PATH="$PATH:$JAVA_HOME/bin:$ANT_HOME/bin"
export PATH JAVA_HOME ANT_HOME CATALINA_HOME
# cp dist /usr/local/tomcat
ควรจะได้ ดังรูป จากนั้นเราก็สามารถใช้งาน tomcat ที่เรา build เองได้แล้ว
# cd /usr/local/tomcat/bin
# rm -f *.bat
# ./version.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java
Server version: Apache Tomcat/5.5
Server built: Jun 17 2005 09:43:23
Server number: 5.5.9.0
OS Name: SunOS
OS Version: 5.8
Architecture: sparc
JVM Version: 1.5.0_03-b07
JVM Vendor: Sun Microsystems Inc.
หากไม่ได้มีการแก้ไขในส่วนของ build.properties มากนัก เราจะได้ tomcat มาค่อยข้างจะครบในเรื่องของ webapps และอื่นๆ ซึงไม่ได้มีการแยกส่วนของ package ออกมาให้เห็นได้อย่างชัดเจนหากมีข้อเสนอแนะประการใดโปรดติเตียน
- zendz's blog
- 1931 reads
Post new comment