Search:  
Gentoo Wiki

IBM_Director

This Howto worked for me. It may not work for you. Use at own risk.

IBM Director

IBM Director and Director Console coming soon!

IBM Director Agent V5.20

To Get IBM Director to install it needs its installation script edited. The script needs to be transfered and edited as a binary file because it contains the data for the install also. (Nano -w didn't seem to works for this) So If these steps fail it may be because the file was corrupted from incorrect editing or transferring. Mount your Director CDROM or CdROM image and copy the files to a temperary director.

Code: Copying the needed files
 
mkdir /tmp/director
cd /tmp/director
cp /mnt/cdrom/director/agent/linux/i386/FILES/dir5.20_agent_linux.sh . 
  

You can unmount the cdrom after the copy if this is all you are installing.

Now We need to edit the install script so that it will run and install. For this we will use vim.(NOTE: nano doesn't seem to work for this)

Code: Editing the file
 
cp dir5.20_agent_linux.sh dir5.20_agent_linux.bak
vim dir5.20_agent_linux.sh
  

In the file we need to change line 106 from this

tail +$SKIP $0 | tar x -C $WRKDIR

To

tail -n +$SKIP $0 | tar x -C $WRKDIR

Then check that the changes are applied:

Code: Checking that the changes applied
 
diff -a dir5.20_agent_linux.bak dir5.20_agent_linux.sh
106c106
< tail +$SKIP $0 | tar x -C $WRKDIR
---
> tail -n +$SKIP $0 | tar x -C $WRKDIR
345351c345351
<
\ No newline at end of file
---
>   

If the diff command comes back the same then you are good to go onto the next step.

Next we extract the data from the script.


Code: Extracting the Data
 
./dir5.20_agent_linux.sh -x ./inst

./dir5.20_agent_linux.sh self-extracting installation program... Please wait... 
  

Now we need to change to the directory that created (should be inst in the current directory) and edit the install script(dirinstall) so that rpm doesnt try to install a bunch of things. To do this we need to change lines 287 and 290. From:

Line 287: rpmOpts="-Uvvh"

Line 290: rpmOpts="-Uvh"

To:


Line 287: rpmOpts="--force --nodeps -Uvvh"

Line 290: rpmOpts="--force --nodeps -Uvh"

That can be done in any text editor.

Now you may need a /etc/rc.d/init.d/functions file Here is one I found on the internet that seems to work:

File: /etc/rc.d/init.d/functions
 
#! /bin/sh
#
# functions     This file contains functions to be used by most or all
#               shell scripts in the /etc/init.d directory.
#
# Version:      @(#) /etc/init.d/functions 1.01 26-Oct-1993
#
# Author:       Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
# Hacked by:    Greg Galloway and Marc Ewing
#

# First set up a default search path.
export PATH="/sbin:/usr/sbin:/bin:/usr/bin"

# A function to start a program.
daemon() {
        # Test syntax.
        case $1 in
            '')    echo '$0: Usage: daemon [+/-nicelevel] {program}'
                   return 1;;
            -*|+*) nicelevel=$1
                   shift;;
             *)    nicelevel=0;;
        esac

        # Save basename.
        base=`basename $1`

        # See if it's already running.
        pid=`pidofproc $base`
        [ -n "$pid" ] && ps h $pid >/dev/null 2>&1 && return

        # echo basename of the program.
        echo -n "$base "

        # make sure it doesn't core dump anywhere; while this could mask
        # problems with the daemon, it also closes some security problems
        ulimit -c 0

        # And start it up.
        nice -n $nicelevel "$@"
}

# A function to stop a program.
killproc() {
        # Test syntax.
        if [ $# = 0 ]; then
                echo "Usage: killproc {program} [signal]"
                return 1
        fi

        notset=0
        # check for second arg to be kill level
        if [ "$2" != "" ] ; then
                killlevel=$2
        else
                notset=1
                killlevel="-9"
        fi

        # Save basename.
        base=`basename $1`

        # Find pid.
        pid=`pidofproc $base`

        # Kill it.
        if [ "$pid" != "" ] ; then
                echo -n "$base "
                if [ "$notset" = 1 ] ; then
                        # TERM first, then KILL if not dead
                        kill -TERM $pid
                        usleep 100000
                        if ps h $pid >/dev/null 2>&1 ; then
                                sleep 3
                                kill -KILL $pid
                        fi
                # use specified level only
                else
                        kill $killlevel $pid
                fi
        fi

        # Remove pid file if any.
        rm -f /var/run/$base.pid
}

# A function to find the pid of a program.
pidofproc() {
        # Test syntax.
        if [ $# = 0 ] ; then
                echo "Usage: pidofproc {program}"
                return 1
        fi

        # First try "/var/run/*.pid" files
        if [ -f /var/run/$1.pid ] ; then
                pid=`head -1 /var/run/$1.pid`
                if [ "$pid" != "" ] ; then
                        echo $pid
                        return 0
                fi
        fi

        # Next try "pidof"
        pid=`pidof $1`
        if [ "$pid" != "" ] ; then
                echo $pid
                return 0
        fi

        # Finally try to extract it from ps
        ps auxw | awk 'BEGIN { prog=ARGV[1]; ARGC=1 } 
                           { if ((prog == $11) || (("(" prog ")") == $11) ||
                           ((prog ":") == $11)) { print $2 ; exit 0 } }' $1
}
status() {
        # Test syntax.
        if [ $# = 0 ] ; then
                echo "Usage: status {program}"
                return 1
        fi

        # First try "pidof"
        pid=`pidof $1`
        if [ "$pid" != "" ] ; then
                echo "$1 (pid $pid) is running..."
                return 0
        else
                pid=`ps auxww | grep '[^[]'$1 | awk '{print $2}'`
                if [ "$pid" != "" ] ; then
                        echo "$1 (pid $pid) is running..."
                        return 0
                fi
        fi

        # Next try "/var/run/*.pid" files
        if [ -f /var/run/$1.pid ] ; then
                pid=`head -1 /var/run/$1.pid`
                if [ "$pid" != "" ] ; then
                        echo "$1 dead but pid file exists"
                        return 1
                fi
        fi
        # See if /var/lock/subsys/$1 exists
        if [ -f /var/lock/subsys/$1 ]; then
                echo "$1 dead but subsys locked"
                return 2
        fi
        echo "$1 is stopped"
        return 3
}
  

To start: /opt/ibm/director/bin/twgstart

IT should now work. If you get this error

Code: Error
 
/opt/ibm/director/bin/msgpool: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory 

You either need to Emerge libcompat or Remerge libcompat

Retrieved from "http://www.gentoo-wiki.info/IBM_Director"

Last modified: Fri, 05 Sep 2008 23:28:00 +0000 Hits: 488