SUMMARY: automatic package installation of www.sunfreeware.com software fails (Sol8 / jumpstart / Startscript)

From: Andreas Klemm (andreas@apsfilter.org)
Date: Wed Jun 11 2003 - 17:03:42 EDT


Hi,

here my summary (verbose ;-)

============================================================================
Credits corner:
============================================================================

An "out of the box" working solution came from the first reply
from Derek Olsen <derek.olsen@qsent.com> special credits for him !!!

But thanks to all who responded, credits go additionally to:
- Jason.Santos@pinnaclewest.com
        his dont-ask file contains an additional field:
                mail=root
        and one difference:
                instance=overwrite
        additionally his pkgadd command looks a little bit different:
                /usr/sbin/pkgadd -n -v -a ./Files/dontask -R /a -d \
                ./Packages/5.8/lsof-4.49-sol8-sparc-64-local SMClsof
- Darren Dunham <ddunham@taos.com>
        Points out: "You almost never want to use pkgask"
        (my personal note: seems to be a cute utility :->)
        He refers to:
                http://docs.sun.com/db/doc/806-0957/6ja9c6gbu?a=view
- Alan Pae <paedalbu@yahoo.com>
        "the trick is not to use a response script since they don't
         ask any questions. Instead you need to supply an alternate
         "admin" file. Then you would use the -a admin file option
         of pkgadd"
        He points to:
        http://www.hgmp.mrc.ac.uk/cgi-bin/man.cgi?section=4&topic=admin
- Gerard Henry <Gerard.Henry@cmi.univ-mrs.fr>
        He uses finishscript according to sun docs:
        cat > ${ADMIN_FILE} << DONT_ASK
        mail=root
        instance=overwrite
        partial=nocheck
        runlevel=nocheck
        idepend=nocheck
        rdepend=nocheck
        space=ask
        setuid=nocheck
        conflict=nocheck
        action=nocheck
        basedir=default
        DONT_ASK
        [ personal comment: I would use "<<-", since then whitespace
          would be nuked in every line in the here script ]
        echo "installation de BOLTpget"
        /usr/sbin/pkgadd -a ${ADMIN_FILE} \
                -d ${MNT}/solaris/BOLTpget.pkg
                -R ${BASE} BOLTpget
        cp ${SI_CONFIG_DIR}/config/Etc/pkg-get.conf /a/etc/
- Jeffrey P. Elliott <jpelliot@umd.umich.edu>
        suggested to use pkgtrans to translate the package into
        directory format. Maybe this is an alternative but I didn't have
        the time to test it. I only want to mention this.
- Matthew R. Clausen <mclausen@csit.fsu.edu>
        Also suggest to transform the package:
        pkgadd -s /jump_common/5.8 sunfreewarepackage.local
        and then in finish script:
        pkgadd -R /a -n -a /a/mnt/packages/admin -d /a/mnt/packages/5.8 SMCgawk
        His dont-ask file looks different, also couldn't try this:
                mail=
                instance=overwrite
                partial=nocheck
                runlevel=quit
                idepend=quit
                rdepend=quit
                space=quit
                setuid=nocheck
                conflict=nocheck
                action=nocheck
                basedir=default

============================================================================
SUMMARY
============================================================================

Here the working solution from Derek Olsen <derek.olsen@qsent.com>
and after that my implementation:

He uses the following command in his scripts:

        /usr/sbin/pkgadd -n \
                -a /var/sadm/admin_noask \
                -d /usr/local/src/pkg/8_Packages/$pkg \
                -r /usr/local/src/pkg/8_Packages/responses \
                < /var/sadm/all.txt \
> /dev/null 2>&1

where $pkg is the name of the package which is to be installed.

The extra files and their contents:

- /var/sadm/all.txt:
        all
- /var/sadm/admin_noask:
        instance=nocheck
        partial=nocheck
        runlevel=nocheck
        idepend=nocheck
        rdepend=nocheck
        space=nocheck
        setuid=nocheck
        conflict=nocheck
        action=nocheck
        basedir=default
- /usr/local/src/pkg/8_Packages/responses
        This response file is just a 0 byte placeholder file

============================================================================
My implementation
============================================================================

I introduced now a new directory "Admin" in the toplevel
of my jumpstart hierarchy (/export/jumpstart/Admin)
and placed all those needed files into there:
        - all (get rid of window'ish .txt ;-)
        - admin_noask
        - responses

All of my "staging scripts" mount
        jumpstart:/export/jumpstart to /mnt

So /mnt/Addon/all/5.8 contains now 3rd party packages for
all jumpstart clients who install Solaris 5.8.

And /mnt/Admin contains the above mentioned files.

All I have to do now in my JS clients staging scripts is
kind of (from memory):

#---------- snip -----------------------------------------
mount jumpstart:/export/jumpstart
if [ $? -ne 0 ]; then
        # try it again sam after reboot
        # watch out for reboot loops
        # echo some meaningfull failure ...
        init 6
fi

OS_REL=`uname -r`
if [ -d /mnt/Addon/all/$OS_REL ]; then
        cd /mnt/Addon/all/$OS_REL
        for pkg in *
        do
                /usr/sbin/pkgadd -n \
                        -a /mnt/Admin/admin_noask \
                        -d /mnt/Addon/all/$OS_REL/$pkg \
                        -r /mnt/Admin/responses \
                        < /mnt/Admin/all \
> /dev/null 2>&1
        done
fi

# copy the next stage from js server
cp /mnt/Stages/stage-06-make-another-cool-thing /etc/rc3.d/S99-stage06
# umount
cd /
umount /mnt
# remove this script
rm $0
# reboot to execute the next stage on startup
init 6
exit 0
#---------- snip -----------------------------------------

On Tue, Jun 10, 2003 at 09:19:23PM +0200, Andreas Klemm wrote:
> Hi,
>
> need to get some scripts done for a mass installation and
> I don't have much time ....
>
> How do I get the packages from http://www.sunfreeware.com
> installed in a Jumpstart environment (here Startup scripts
> without a control tty) without having to create answer files
> using pkgask ...
>
> I made good experience using "here" scripts in jumpstart to
> install interactive packages. If I additional redirect stdout
> to /dev/null then I don't get trouble because of the missing
> control terminal, since I start a bunch of scripts within
> rc2.d start scripts (staging, using several reboots) ...
>
> But now I'm really in trouble, since the solaris 8 packages
> from www.sunfreeware.com refuse to install
>
> %----------- snip
> #! /bin/sh
>
> # stage-06-script
> # /etc/rc2.d/S99-stage-06
>
> [...]
> mount jumpstart:/export/jumpstart /mnt
> cd /mnt/Addon/5.8
> pkgadd -d zlib-1.1.4-sol8-sparc-local > /dev/null <<- EOM
> all
> y
> EOM
> [...]
> exit 0
> %----------- snip
>
> yields in:
> [...]
> Installation of <SMCzlib> failed.
> No changes were made to the system.
>
> Well, this fails installing the package without any other failure
> message than that ...
>
> I installed for example SDS without any trouble using a similar syntax.
> The only difference is "-d .", since the SDS packages are in directory
> format, not this "one file format".
>
> Any clue ??
>
> Andreas ///

-- 
Andreas Klemm
Apsfilter Homepage                  http://www.apsfilter.org
Support over mailing-lists (only!)  http://www.apsfilter.org/support
Mailing-list archive                http://www.apsfilter.org/Lists-Archives
_______________________________________________
sunmanagers mailing list
sunmanagers@sunmanagers.org
http://www.sunmanagers.org/mailman/listinfo/sunmanagers


This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 23:26:34 EDT