Solaris 2.5.1 JumpStart

Hi,

I've received many replies. I attach several answers for reference.

To make your own finish script, only customized change are needed for your

company's environment.

I appreciate your kindly help.

Jeffrey

------------- Begin Forwarded Message -------------

Fromsun-managers-relay@ra.mcs.anl.gov Wed Apr 2 15:28:35 1997

Date: Wed, 2 Apr 1997 14:25:36 -0800

From:jliu@eur.ericsson.com (Jeffrey Liu)

To:sun-managers@eecs.nwu.edu

Subject: Solaris 2.5.1 JumpStart

Mime-Version: 1.0

Content-Transfer-Encoding: 7bit

Content-Md5: hhEooRL/oc8qijzWXVqjvg==

Hi,

I'm setup a Solaris 2.5.1 JumpStart Server.

I've successfull netinstalled OS, but

I had problem to create a finish script to install

following software packages:

1. CDE

2. SSPC

3. 2.5.1_Recommended patches

If you have a working script, can you please forward to me?

Thanks,

Jeffrey

------------- End Forwarded Message -------------

attached mail follows:



Hi,

For your CDE:

        pkgadd -d /tmp/install_config/CDE/cde-min -R /a SUNWdticn

        

        cd /tmp/install_config/CDE/CDE-min

        pkgadd -d . -R /a /SUNWdtbas <<EOF

        y

        y

        y

        EOF

        

        rm -rf /a/usr/SUNWdtbas

        

        pkgadd -d /tmp/install_config/CDE/cde-min -R /a SUNWdtdmn

        

        pkgadd -d /tmp/install_config/CDE/cde-min -R /a SUNWdtdte <<EOF

        y

        y

        y

        EOF

        

        pkgadd -d /tmp/install_config/CDE/cde-min -R /a SUNWdtft

        

        pkgadd -d /tmp/install_config/CDE/cde-end-user -R /a SUNWdtdst <<EOF

        y

        EOF

        

        for f in dthe dthev dtim dtreme dtwm

        do

                pkgadd -d /tmp/install_config/CDE/cde-end-user -R /a SUNW${f}

        done

        #

        # Enable CDE dtlogin environment

        #

        chroot /a /usr/dt/bin/dtconfig -e

        chroot /a /usr/dt/bin/dtconfig -reset

        

        # Make sure you have patches installed and unarchived on disk on some

        # remote host

        #

        mount -F nfs -o rw patchhost:/dir_path/Patches /a/mnt

        /a/mnt/Install_Patches

You need to create a file called Patch_list at the same level as where

Install_Patches is on the server. Type in the patch number and revision

for every patch you want installed on install client e.g.

        103187-0

        103188-09

        103368-04

        ...

The Install_patches should have the following in it:

        #!/bin/sh

        cd /a/mnt

        PATH=/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/openwin/bin:.

        export PATH

        for f in `cat ./Patch_List`

        do

                cd ${f}

                ./installpatch -R /a -u -d .

                cd ..

        done

                

        # End of Install_Patches script

There you are, any help, just contact me.

Michael Bennett

London International Financial Futures & Options Exchange

Michael.Bennett@liffe.com

I always know something you don't, but then again, it could be said likewise!

> Fromsun-managers-relay@ra.mcs.anl.gov Thu Apr 3 00:45 BST 1997

> Date: Wed, 2 Apr 1997 14:25:36 -0800

> From:jliu@eur.ericsson.com (Jeffrey Liu)

> To:sun-managers@eecs.nwu.edu

> Subject: Solaris 2.5.1 JumpStart

> Mime-Version: 1.0

> Content-Transfer-Encoding: 7bit

> Content-Md5: hhEooRL/oc8qijzWXVqjvg==

>

> Hi,

>

> I'm setup a Solaris 2.5.1 JumpStart Server.

> I've successfull netinstalled OS, but

> I had problem to create a finish script to install

> following software packages:

> 1. CDE

> 2. SSPC

> 3. 2.5.1_Recommended patches

>

> If you have a working script, can you please forward to me?

>

> Thanks,

>

> Jeffrey

attached mail follows:





  • X-sun-attachment attachment:stored

attached mail follows:



Jeffrey,

I use this script, but it could use to be cleaned up. Try it.

Paul O'Donnell

#!/bin/sh

# Install the patches that came with the Solaris CDROM

#

cd /cdrom/Patches

../install_patches -p . /a

#Set up .rhosts

#

echo "NISserver root" >> /a/.rhosts

echo "NFSserver root" >> /a/.rhosts

echo "Printserver root" >> /a/.rhosts

# Install the Recommended patches

#

cd /

mkdir /tmp/b

mount NFSserver:/u03/projects/sys_admin/unix/2.5.1patches/2.5.1_Recommended /tmp/b

cd /tmp/b

mkdir /var/sadm/install_data

# Certain patches will not be made without these links.

ln -s /a/var /a/var/var

ln -s /a/usr /a/var/usr

ln -s /a/etc /a/var/etc

ln -s /a/kernel /a/var/kernel

../install_cluster -q

# Save the log file, and clean up

#

cp /var/sadm/install_data/Solaris_2.4_Recommended_log /a/var/sadm/install_data

cd /

umount /tmp/b

echo "finish script is done"

attached mail follows:



>

> Hi,

>

> I'm setup a Solaris 2.5.1 JumpStart Server.

> I've successfull netinstalled OS, but

> I had problem to create a finish script to install

> following software packages:

> 1. CDE

> 2. SSPC

> 3. 2.5.1_Recommended patches

>

> If you have a working script, can you please forward to me?

>

> Thanks,

>

> Jeffrey

>

I'd recommend you pick up a copy of 'Automating Solaris Installations: A Custom

JumpStart Guide' (seehttp://www.prenhall.com). It's a nice concise how-to

and comes with a diskette of scripts.

Here's a couple scripts I created/modified to do the job:

Add CDE packges:

( note: $CLUSTER refers to a file listing the package names, one name

  per line - optional, if you wanted to install a subset of what's in

 $PKGDIR. $PKGDIR is a copy of the CDE packages from the CDROM, in this

 case located in the JumpStart dir ($SI_CONFIG_DIR) under sw/sunpkgs/cde.

#!/bin/sh

B=/a # base directory of all absolute paths (/a during installation)

PKGDIR=$SI_CONFIG_DIR/sw/sunpkgs/cde

if [ ! -d $PKGDIR ]; then

        echo "Can't find package directory: $PKGDIR"

        exit 1

fi

#### Debug: Uncomment the following lines

#SI_CONFIG_DIR=

#DEBUG=on

#B=/

#### End Debug

if [ ! -d $B/usr/local ]; then

        mkdir $B/usr/local

fi

if [ $# != 0 ]; then

        # we have an argument - cluster file

        CLUSTER=$1

        if [ ! -f $PKGDIR/$CLUSTER ]; then

                echo "no such file: $PKGDIR/$CLUSTER"

                exit 2

        fi

fi

add_pkg()

{

pkginfo -d $B/var/sadm/pkg | /bin/grep -s "$1 " > /dev/null 2>&1

if [ $? != 0 ]; then

   echo "Installing the $1 package."

        pkgadd -a $SI_CONFIG_DIR/noask_pkgadd -d ${PKGDIR} -R $B $1 \

>> $B/var/sadm/BBNpkgadd.log 2>&1

else

   echo "$1 package already INSTALLED."

   pkginfo -d $B/var/sadm/pkg | /bin/grep -s $1

fi

}

##

## Main()

##

if [ ${CLUSTER}null = "null" ]; then

        for f in $PKGDIR/SUN*

        do

                 add_pkg `basename $f`

        done

else

        for f in `cat $PKGDIR/$CLUSTER`

        do

                add_pkg $f

        done

fi

exit

For patches, I put all the patches in an exported directory - in this case

a subdir of the JumpSart directory sw/patches/5.5.1 & CDE-1.0.2.

Then I copy the following script to the client's rc3.d dir as S90patcher.

The script executes after jumpstart reboots the system:

#!/bin/sh

# S90patcher

SERVER=sword.bbnplanet.com

PATCHDIR=/export/sw/jumpstart/sw/patches

if [ -f /patch-flag ]

then

        echo "

        Installing patches...

        `date`

        (This could take several HOURS!)

        "

        mount $SERVER:$PATCHDIR /mnt

        cd /mnt/5.5.1

        ./install_patches -u | \

                tee /var/sadm/install_data/5.5.1-patch.log 2>&1

        cd /mnt/CDE-1.0.2

        ./install_patches -u | \

                 tee /var/sadm/install_data/CDE_1.0.2-patch.log 2>&1

        

        echo "

        Finished installing patches.

        `date`

        "

        cd /

        umount /mnt

        rm $0 /patch-flag

        touch /reconfigure

fi

exit

install_patches (modified version of sun supllied script):

#! /bin/sh

#

# @(#)install_ms 1.7 94/03/17

# Copyright (c) 1994 by Sun Microsystems, Inc.

#

# Script to install a set of patches in one step

#

set -e

#

# Force the path to first look in certain directories

#

PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH

export PATH

#

# Update tag information

# (Tag needs to be convertible to a valid filename too...)

# (size is in kb + overhead)

MS_NAME="Initial_Patches"

MS_DETAIL="Initial Patches Installed"

MS_SIZE=10000

SPECIAL_PATCHES="103612-07 103663-03"

RELEASE=

if [ -f .RELEASE ]; then

        RELEASE=`cat .RELEASE`

fi

# Broadcast what we are doing

#

echo

echo "Installing ${MS_NAME} ${RELEASE}"

echo "${MS_DETAIL}"

echo

#

# Command line and environment option processing

#

# (Default is to save base objects)

#

USAGE="usage: `basename $0` [-nosave] [-u]\n\

    [-nosave] - don't save the original objects in /var/sadm/patch\n\

    [-u] - unconditional install, do not verify file attributes\n"

#USAGE="usage: `basename $0` [-nosave] [-u] [patchdir]\n\

# [-nosave] - don't save the original objects in /var/sadm/patch\n\

# [-u] - unconditional install, do not verify file attributes\n\

# [patchdir] - optional pathname to directory of patches\n"

saveold=''

unc=

#

# Command invocation will be recorded in $LOGFILE,

# to help users determine post-install whether backout

# is possible or not (backout_ms requires install_ms w/o -nosave).

#

command="$0 $*"

for i in $*

do

        case $i in

        -nosave)saveold='-d'; shift;;

        -u) unc='-u'; shift;;

        -*) echo "$USAGE"; exit 2;;

        *) break;;

        esac

done

uid=`id | sed 's/uid=\([0-9]*\)(.*/\1/'`

if [ "$uid" != "0" ] ; then

        echo "You must be root to execute this script."

        exit 1

fi

logname=`echo ${MS_NAME} | sed 's/ /_/g'`_log

LOGFILE=/var/sadm/install_data/${logname}

#

# Where do we find the list of patches to install

# (we need an absolute pathname...)

#

#if [ $# -gt 0 ]

#then

# PATCHDIR=`cd $1; pwd`

#else

# PATCHDIR=`pwd`

#fi

PATCHDIR=`pwd`

#

# If we are backing up the patches, do we have enough space in the

# backup directory

#

if [ ! -d /var/sadm/patch ] ; then

        echo "Create patch archive area"

        mkdir /var/sadm/patch

        chown bin /var/sadm/patch

        chgrp bin /var/sadm/patch

        chmod 555 /var/sadm/patch

fi

if [ "${saveold}" != -d ]

then

        bytes_avail=`df -b /var/sadm/patch | tail -1`

        bytes_avail=`echo $bytes_avail | sed 's/.*\ //'`

        if [ ${MS_SIZE} -gt ${bytes_avail} ]

        then

                echo "Insufficient space in /var/sadm/patch to save old files."

                echo "Space required in bytes: ${MS_SIZE}"

                echo "Space available in bytes: ${bytes_avail}"

                exit 1

        fi

fi

#

# Install all the patches in PATCHDIR

#

# Simply go down the list of existing patches and apply them one at a time

#

echo "Installing patches located in ${PATCHDIR}"

echo "Installation will be logged in ${LOGFILE}"

if [ "${saveold}" != -d ]

then

        echo "Original objects on the system will be saved in /var/sadm/patch."

fi

echo "***" >> ${LOGFILE}

echo "*** Install ${MS_NAME} ${RELEASE} begins `date` " >> ${LOGFILE}

echo "*** PATCHDIR: ${PATCHDIR} " >> ${LOGFILE}

echo "*** COMMAND: `uname -n`# $command " >> ${LOGFILE}

echo "***" >> ${LOGFILE}

# This is done to maintain the cwd to PATCHDIR to suppress auto unmounts...

cd ${PATCHDIR}

set +e

#

# Assume: all objects that begin with 1 in the current directory are the

# configuration we want to install...

# Assume: shell coallating sequence is the desired install order...

#

tmplog=/tmp/tmplog

prev_installed_list=

not_applicable_list=

obsolete_list=

failed_list=

PATCHES=$SPECIAL_PATCHES

for patch in 1*; do

   have=0

   for pnum in $SPECIAL_PATCHES; do

      if [ $pnum = $patch ]; then

         have=1

      fi

   done

      if [ $have = 0 ]; then

         PATCHES="$PATCHES $patch"

      fi

done

for patch in $PATCHES

do

        echo "" >> ${LOGFILE}

        echo "Installing ${patch}..." | tee -a ${LOGFILE}

        ( cd ${patch}; \

                ./installpatch ${saveold} ${unc} `pwd` ) > $tmplog 2>&1

        result=$?

        #

        # Parse error message strings to handle both older and newer

        # versions of installpatch error handling.

        #

        case ${result} in

        0) ;;

        1) echo " Installation aborted.\c"

                if egrep -s "Patch has already been applied" $tmplog

                then

                        echo " ${patch} was previously applied to the system."

                        prev_installed_list="${prev_installed_list} ${patch}"

                elif egrep -s "This patch is obsoleted by a patch" $tmplog

                then

                        echo " ${patch} has been obsoleted by another patch."

                        obsolete_list="${obsolete_list} ${patch}"

                elif egrep -s "The packages to be patched are not installed" \

                                $tmplog

                then

                        echo " ${patch} is not applicable to the system."

                        not_applicable_list="${not_applicable_list} ${patch}"

                else

                        echo " Patch ${patch} failed with return code 1."

                        failed_list="${failed_list} ${patch}"

                fi;;

        2) echo " Installation aborted.\c"

                if egrep -s "has already been applied" $tmplog

                then

                        echo " ${patch} was previously applied to the system."

                        prev_installed_list="${prev_installed_list} ${patch}"

                else

                        echo " Patch ${patch} failed with return code 2."

                        failed_list="${failed_list} ${patch}"

                fi;;

        6) echo " Installation aborted.\c"

                echo " ${patch} has been obsoleted by another patch."

                obsolete_list="${obsolete_list} ${patch}";;

        8) echo " Installation aborted.\c"

                echo " ${patch} is not applicable to the system."

                not_applicable_list="${not_applicable_list} ${patch}";;

        *) echo " Patch ${patch} failed with return code 1."

                failed_list="${failed_list} ${patch}";;

        esac

        cat $tmplog >> ${LOGFILE} 2>&1

done

#

# A little cleanup. list the patches that failed installation (if any)

#

if [ " ${prev_installed_list}" != " " ]

then

        echo

        echo "The following patches were previously installed on the system"

        echo ${prev_installed_list} | tr ' ' '\012' | sed 's/^/ /g'

fi

if [ " ${not_applicable_list}" != " " ]

then

        echo

        echo "The following patches are not applicable to the system"

        echo ${not_applicable_list} | tr ' ' '\012' | sed 's/^/ /g'

fi

if [ " ${obsolete_list}" != " " ]

then

        echo

        echo "The following patches have been obsoleted by another patch"

        echo ${obsolete_list} | tr ' ' '\012' | sed 's/^/ /g'

fi

if [ " ${failed_list}" != " " ]

then

        echo

        echo "The following patches failed to install"

        echo ${failed_list} | tr ' ' '\012' | sed 's/^/ /g'

fi

echo

echo "Please refer to the installation logfile:"

echo " ${LOGFILE}"

echo "for further details."

#

# Set /var/sadm/patch permissions to allow certain applications

# (e.g. SunPC) to search it.

#

chmod 0755 /var/sadm/patch

exit 0

Finally, the noask_pkgadd file referenced in one of the above scripts...

# adminfile3

# default basedir

mail=

#instance=overwrite

instance=quit

partial=nocheck

runlevel=nocheck

idepend=nocheck

rdepend=nocheck

space=ask

setuid=nocheck

conflict=nocheck

action=nocheck

basedir=default

Good luck!


--

Greg Bean BBN Corporation
(617)873-6318 150 CambridgePark Drive
gbean@bbnplanet.com Cambridge, MA 02140


attached mail follows:



>>>>> In article <199704022225.OAA06794@dragon.raynet.com>, Jeffrey Liu <jliu@eur.ericsson.com> writes:

jliu> I had problem to create a finish script to install

jliu> following software packages:

jliu> 1. CDE

jliu> 2. SSPC

jliu> 3. 2.5.1_Recommended patches

jliu> If you have a working script, can you please forward to me?

 Here's my finish script. It installs CDE, power management (where

applicable) and all the latest patches. The patches are put into

directories named patches/01 patches/02 patches/03 etc. patches/01

contains patches that must be installed before others (eg 103612-07,

103663-05), 02 contains basic system patches. 03 is OpenWindows

patches, 04 is CDE patches.

 The CDE install is not obvious - you need to install each of the

packages, but to do it non-interactively you need to provide a pkgadd

admin file.

 I also have scripts for applying new patches to machines that have

already been installed - it uses showrev to find out which ones are

missing and installs them from the patches/? directories

 The files directory contains a hierarchy of files that should replace

the default files. It includes modified inetd.conf, hosts.equiv and so

on files as well as a couple of scripts that go in /etc/rc2.d to

finish off the installation - one to enable printing, and one to tidy

up the CDE installation. These scripts are after the finish script.

------------------------------8<--snip-snip--8<------------------------------

#!/bin/sh

# Customisation for CogSci/HCRC JumpStart installations

# Don't forget new / is mounted on /a

# Usage: cogsci_finish [path to root]

# eg on server: cogsci_finish /export/root/client-name

# Run by jumpstart with no args, so defaults to /a

if [ $# -gt 0 ]; then

  rootdir=$1; shift;

else

  rootdir=/a

fi

echo Using $rootdir as installation root directory.

if [ "$SI_CONFIG_DIR" = "" ]; then

  SI_CONFIG_DIR=`dirname $0`

  SI_SYS_STATE=$rootdir/etc/.sysIDtool.state

  SI_KARCH=`uname -m`

  if [ $rootdir = "/" ]; then

    SI_HOSTNAME=`uname -n`

  else

    SI_HOSTNAME=`basename $rootdir`

  fi

fi

fdir=${SI_CONFIG_DIR}/files

pdir=${SI_CONFIG_DIR}/patches

passdir=${SI_CONFIG_DIR}/passwd

cdedir=${SI_CONFIG_DIR}/CDE

pmdir=${SI_CONFIG_DIR}/upd_sol_2_5_1_smcc/SMCC

printdir=${SI_CONFIG_DIR}/printer

# link source dest

# Renames original dest to foo.DIST first

link()

{

        if [ -f $2 ] ; then

                mv $2 $2.DIST

        fi

        ln -s $1 $2

}

# copy source destdir mode

# source relative to files/ dir

# dest relative to new root

copy()

{

        if [ -f $rootdir/$2/$1 ] ; then

                mv $rootdir/$2/$1 $rootdir/$2/$1.DIST

        fi

        cp $fdir/$1 $rootdir/$2

        chmod $3 $rootdir/$2/$1

}

copyfiles()

{

        ( umask 022

        cd $1

        for f in `find . -type f -print` ; do

          if [ -f $rootdir/$f ] ; then

            if [ ! -f $rootdir/$f.DIST ] ; then

              echo Saving $rootdir/$f

              mv $rootdir/$f $rootdir/$f.DIST

            fi

          fi

          echo Installing $rootdir/$f

          cp $f $rootdir/$f

        done )

}

makelinks()

{

    cat $1 | while read source dest ; do

        link $source $rootdir/$dest

    done

}

install_pkgs()

{

    cd $1

    shift

    for pkg in $@ ; do

        pkgadd -n -r /dev/null -a /tmp/admin.$$ -d . -R $rootdir $pkg

    done

}

# Install extra packages

# Set up pkgadd input file for noninteractive install

cat > /tmp/admin.$$ <<EOF

basedir=default

mail=

runlevel=quit

conflict=nocheck

setuid=nocheck

action=nocheck

partial=nocheck

instance=unique

idepend=nocheck

rdepend=nocheck

space=quit

EOF

# First CDE

echo Installing CDE

install_pkgs $cdedir/sparc/cde-min SUNWdtft SUNWdtdmn SUNWdtbas SUNWdticn SUNWdtdte

install_pkgs $cdedir/sparc/cde-end-user SUNWdtwm SUNWdthe SUNWdthev SUNWdtdst SUNWdtim SUNWdtrme

install_pkgs $cdedir/sparc/cde-developer SUNWdtinc SUNWdtma SUNWdtmad SUNWdthed SUNWdtab SUNWdtdem SUNWmfdev

# Then power management

#echo Installing power management software

pmpkgs="SUNWpmch SUNWpmman SUNWpmow SUNWpmr SUNWpmu"

if [ -z "${SI_KARCH}" ] ; then

        SI_KARCH=`uname -m`

fi

case ${SI_KARCH} in

    sun4m) install_pkgs $pmdir SUNWcpr.m SUNWpmc.m ${pmpkgs}

           ;;

    sun4u) install_pkgs $pmdir SUNWcpr.u ${pmpkgs}

           ;;

    *) echo No power management for ${SI_KARCH}

esac

# Make space in /

# glurk! But we re-mount it all from stevenson anyhow...

# Need to preserve some for patches to succeed. Tidy up later

#echo "DEBUG: moving /opt out of harms way for inspection"

#mv $rootdir/opt $rootdir/optX

echo "Making space in $rootdir by deleting $rootdir/opt/*"

echo " - will be mounted from stevenson"

for dir in $rootdir/opt/* ; do

  /usr/bin/rm -rf $dir

done

# Now install patches

if [ -d $pdir ]; then

        echo "Applying latest recommended patches"

        for l in $pdir/* ; do

            for d in $l/* ; do

                $d/installpatch -R $rootdir $d

            done

        done

fi

#Clear up rest of /opt now patches are installed

#for d in SUNWdxlib SUNWits SUNWtcx ; do

# /bin/rm -rf $rootdir/opt/$d

#done

# Local mountpoints - most are automounts, so are created automagically

echo "Making directories"

mkdir -p $rootdir/etc/dt/config

mkdir -p $rootdir/etc/dt/appconfig/icons/C

mkdir -p $rootdir/etc/tt

mkdir -p $rootdir/var/tooltalk/root

mkdir -p $rootdir/var/tooltalk/usr

chmod -R 755 $rootdir/etc/dt $rootdir/etc/tt $rootdir/var/tooltalk

# Then delete troubleseome files

echo 'Deleting files'

for f in $rootdir/etc/rc?.d/*sendmail ; do

    echo $f

    rm $f

done

# Then copy files

echo "Installing files"

copyfiles $fdir

# Next the symlinks

echo "Making links"

makelinks ${SI_CONFIG_DIR}/link.cfg

# Then append files

# Modify /etc/system for NTP

cat >> $rootdir/etc/system <<END

* Zero dosynctodr for NTP

set dosynctodr=0

* Don't trust non-root NFS clients

set nfs:nfs_portmon = 1

END

# Add local magic numbers (eg WordPerfect, Gzip)

cat ${SI_CONFIG_DIR}/magic >> $rootdir/etc/magic

# Then edit files

# Then other activities

echo "Making manual indices"

catman -w -M $rootdir/usr/man

catman -w -M $rootdir/usr/dt/man

catman -w -M $rootdir/usr/openwin/man

echo "Correcting printer log permissions"

chown lp $rootdir/var/lp/logs/lpNet

chgrp lp $rootdir/var/lp/logs/lpsched

# Set default printer

if [ -f $printdir/${SI_HOSTNAME} ] ; then

  echo "Setting default printer"

  cp $printdir/${SI_HOSTNAME} $rootdir/etc/defaultprinter

fi

if [ "`grep '0 # root' ${SI_SYS_STATE}`" != "" ] ; then

    echo "Setting default root password"

    # set the root password

    if [ -f $passdir/${SI_HOSTNAME} ] ; then

        PASSWD=`cat $passdir/${SI_HOSTNAME}`

    else

        PASSWD=`cat $passdir/default`

    fi

    mv $rootdir/etc/shadow $rootdir/etc/oshadow

    nawk -F: '{

            if ( $1 == "root" )

                printf"%s:%s:%s:%s:%s:%s:%s:%s:%s\n",$1,passwd,$3,$4,$5,$6,$7,$8,$9

            else

                printf"%s:%s:%s:%s:%s:%s:%s:%s:%s\n",$1,$2,$3,$4,$5,$6,$7,$8,$9

                }' passwd="$PASSWD" $rootdir/etc/oshadow > $rootdir/etc/shadow

    chmod 400 $rootdir/etc/shadow

    chgrp sys $rootdir/etc/shadow

    # set the flag so sysidroot won't prompt for the root password

    sed -e 's/0 # root/1 # root/' ${SI_SYS_STATE} > /tmp/state.$$

    mv /tmp/state.$$ ${SI_SYS_STATE}

fi

------------------------------8<--snip-snip--8<------------------------------

#!/bin/sh

# 25/7/95 tkld

# Customise for CogSci printers

# Solaris 2

SCRIPT=/etc/rc2.d/S98setup.print

pserver=knox

echo 'Initialising printer services'

lpsystem -t bsd $pserver

for printer in lw1 lw2 lw3 lw4 lw5 lw8 dj1; do

        lpadmin -p $printer -s $pserver -I any

        accept $printer

        enable $printer

done

# Magic file created by custom jumpstart installation

if [ -f /etc/defaultprinter ] ; then

        lpadmin -d `cat /etc/defaultprinter`

        /bin/rm -f /etc/defaultprinter

fi

chown lp /var/lp/logs/*

chgrp lp /var/lp/logs/*

echo "Done. Removing install script. $SCRIPT"

# Then remove self

/bin/rm -f $SCRIPT

------------------------------8<--snip-snip--8<------------------------------

#!/bin/sh

# Fix up things not finished by auto install of CDE

SCRIPT=/etc/rc2.d/S99cdefixup

# First compile dtterm terminfo entry

/usr/bin/tic /usr/dt/config/dtterm.ti

# Now enable CDE dtlogin

/usr/dt/bin/dtconfig -e

/etc/init.d/dtlogin start

# Remove script

echo Removing $SCRIPT

/bin/rm -f $SCRIPT

------------------------------8<--snip-snip--8<------------------------------


--
|Kevin.Davidson@edinburgh.ac.uk +-+ Centre for Cognitive Science/HCRC, |
|tkld@cogsci.ed.ac.uk | | University of Edinburgh, |
|+44 (0)131 650 6879 .oOo. | | 2 Buccleuch Place, EH8 9LW. .oOo. |
`-------------------------------' `-------------------------------------------'

[43061 byte] By [CodeProf.com] at [2007-12-25 10:00:00]