วันพฤหัสบดี, มิถุนายน 16, 2548

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

เริ่มทำกันเลยดีกว่า
  1. อันดับแรก 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

  2. ทำการแก้ไข file /etc/profile ตามนี้

    ANT_HOME="/export/home/ant"
    PATH="$PATH:$ANT_HOME/bin"
    export PATH ANT_HOME

    จากนั้น load profile ที่แก้ไขเมื่อกี้ เพื่อให้ effective โดยสั่ง
    $ source /etc/profile

  3. 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
    $ 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

    หลังจากนี้ ant จำทำงานตาม build script ที่ตั้งไว้โดยจะไป download libraly ที่มันต้องการมาไว้ที่ /usr/share/java และหลังจากที่ ant ทำการ build เสร็จเรียบร้อยแล้ว มาขั้นตอนต่อไปเลย
  4. ขั้นตอนต่อไปเราจะทำการ build tomcat ให้เรียบร้อยกันซะที โดยสั่งตามนี้
    # cd jakarta-tomcat-5
    # cp build.properties.default build.properties

    จากนั้น แก้ไขตามสะดวก แต่จะแก้หรือไม่แก้ก็ได้ หากไม่แก้ ไม่จำเป็นต้อง copy build.properties.default เป็น build.properties แต่ผมแก้ตรงส่วนของ compile.optimize=on ซะ

    จากนั้น เราจะทำการ build tomcat กันอีกครั้ง เนื่องจากครั้งแรกที่เราสั่ง ant ที่ Root ของ jakarta.source นั้นเป็นการเตรียม libraly ที่จำเป็นสำหรับการ build ไม่พูดพล่ามทำเพลง มาทำต่อเลยดีกว่า สั่งตามนี้

    # ant build

    จะมีข้อความขึ้นมามากมาย หลังจาก build เสร็จเรียบร้อยเราจะได้ directory ขึ้นมา 1 อันชื่อว่า build จริงๆ เราสามารถ run tomcat จาก directory build ได้เลยก็ได้ เรามาลองกัน

    # cd build/bin
    # ./startup.sh

    จากนั้น ลอง check จากคำสั่งต่างๆ ไม่ว่าจะเป็น netstat, lsof, ps หรืออะไรก็ได้ตามสะดวก แล้วลอง telnet หรือเข้าด้วย browser ดูว่าได้หรือไม่ ผมสรุปเอาว่าได้แล้วกัน
  5. ต่อมา เราจะทำการ 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"
    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


    ให้ทำการ copy directory นี้ไปที่ /usr/local/tomcat

    # cp dist /usr/local/tomcat
    # 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.

    ควรจะได้ ดังรูป จากนั้นเราก็สามารถใช้งาน tomcat ที่เรา build เองได้แล้ว


หมายเหตุ
หากไม่ได้มีการแก้ไขในส่วนของ build.properties มากนัก เราจะได้ tomcat มาค่อยข้างจะครบในเรื่องของ webapps และอื่นๆ ซึงไม่ได้มีการแยกส่วนของ package ออกมาให้เห็นได้อย่างชัดเจน


หากมีข้อเสนอแนะประการใดโปรดติเตียน

ไม่มีความคิดเห็น: