[GE dev] Instruction of how to build SGE 6.2u3 on CentOS 5.3

hintak htl10 at users.sourceforge.net
Tue Jul 28 18:27:48 BST 2009


    [ The following text is in the "utf-8" character set. ]
    [ Your display is set for the "ISO-8859-10" character set.  ]
    [ Some characters may be displayed incorrectly. ]

--- On Tue, 28/7/09, pine_ml <pine_ml at 163.com> wrote:

> First of all, thanks, hintak!
> With your help, I have builded sge 6.2u3 successfully.

You are welcomed. I am surprised some of the problems are still there - I reported them and/or provided patches/workarounds for them a couple of years ago... I used to build sge and got quite familiar with its code base, but lately fedora (8? or 9 onwards) ships it so there isn't much point od doing my own. May be I should ask the question: why isn't grabbing the rpm via yum good enough for you, or the curtesy binaries? CentOS 5.3 should be binary-compatible with fedora 10, I think, so it should be painless just installing the fedora 10 RPMs or just 'rpm --rebuild' the source rpm; the curtesy binaries have some very antique dependencies the last time I checked, but that should work as well.

A few comments below, and hope that it would be useful for others or in the future.

> Following are my method to build sge 6.2u3 on CentOS 5.3
> successfully.
> Hope it is useful for somebody else because sge's build
> is awesome on Fedoara/CentOS.
> 
> --> get source tar ball
>     [] get sge 6.2u3's source code
>        
> ge-V623_TAG-src-all_modules.tar.gz
>     [] get Berkeley DB's source code 
>         db-4.7.25.tar.gz

The Berkeley DB package should be available from the distro - 'yum install db4 and db4-devel' should do it.

> 
>  --> build Berkeley DB
>     [] unpack Berkeley DB's source
>         tar zxvf
> db-4.7.25.tar.gz
>     [] enter its directory
>         cd db-4.7.25
>     [] enter build directory
>         cd build_unix
>     [] configure 
>         ../dist/configure
> --enable-rpc --enable-posixmutexes

I don't know the Berkeley DB well enough, but I would have thought rpc and posixmutexes are the defaults for unix systems? The distro-shipped packages should work well enough.

>     [] make
>         make
>     [] install, and remember your DB's
> target path (as MyDbPath)
>          make install
> 
>     Note: you can specify the target path in
> ../dist/configure --prefix=/path/to/your/target --enable-rpc
> --enable-posixmutexes
> 
>   --> install Motif/OpenMotif
>     yum install openmotif*

SGE can be built also with lesstif, I think.

> 
>   --> install openJDK
>     yum install openjdk*
> 
>   --> install libXpm.devel-i386
>     yum install libXpm.devel-i386

typo - 'libXpm-devel.i386' .

>         
>   --> modify two aimk files
>     [] aimk for krb
>         set
> SECLIBS_STATIC    = "-lssl
> -lcrypto" # added by c.k
>         #set
> SECLIBS_STATIC    =
> "$OPENSSL_HOME/lib/libssl.a
> $OPENSSL_HOME/lib/libcrypto.a"


I think the correct fix here is to put linux under the same category as HP-UX (which ships the shared-library version of those libraries) to make it use the dynamic version of the libraries, rather than changing the static defines. 

>     [] aimk.site for java
>         if ( ! $?JAVA_HOME )
> then
>            #set
> JAVA_BIN = `which \java`
>            #
> modified by c.k
>            set
> JAVA_BIN =
> '/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/java'
> 
>            if ( -e
> "$JAVA_BIN" ) then
>           
>       #if (( -e
> "$JAVA_BIN" ) && ("$JAVA_BIN" !=
> "/usr/bin/java")) then
>        
>       set JAVAV = `$JAVA_BIN
> -version |& head -1`
>        
>       set JAVAV = `expr
> "$JAVAV" : 'java version
> "1\.\([0-9]\)*"'`
> 
>        
>       if ( $JAVAV >= 4 ) then
>        
>          setenv
> JAVA_HOME `expr //$JAVA_BIN :
> '//\(.*\)/bin/.*'`
>        
>       endif
>            endif
> 
>            #
> following code section is added by c.k
>            if (( -e
> "$JAVA_BIN" ) && ("$JAVA_BIN" ==
> "/usr/bin/java")) then
>          
>     #set argv = ( -no-jni $* )
>        
>         set JAVA_HOME =
> '/nowhere'
>            endif
> 
>         endif

some of these probably aren't necessary if you simply do 
   export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0
or
   setenv JAVA_HOME /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0
?
In any case, as I already wrote the problem is simply that the auto-detection of JAVA_HOME based on `which java`, and it ended up grabbing  jni includes from files of the same name but different content off the linux kernel :-). 

>     [] aimk.site for DB
>         #set BERKELEYDB_HOME
> = /off_home/gridengine/db-4.4.20/$buildarch
>        #modified by c.k
>         set BERKELEYDB_HOME =
> /usr/local/BerkeleyDB.4.7 #remember your MyDbPath?

should use the distro-shipped packages/headers...

>         
>   --> modify build.xml for sun's private java
> library
>     [] <target name="all"
> depends="detect_jvm_lib, drmaa"/>
> 
>  --> build the dependency tool
> 'sge_depend'
>     [] ./aimk -only-depend -no-dump
>     [] ./scripts/zerodepend
>     [] ./aimk -no-dump depend
> 
>   --> build SGE
>     [] ./aimk -no-dump
> 
> 
> 
> 
> 
> 
> ??YEAH.NET?????????????
>

------------------------------------------------------
http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=39&dsMessageId=209926

To unsubscribe from this discussion, e-mail: [dev-unsubscribe at gridengine.sunsource.net].



More information about the gridengine-users mailing list