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

From: Andreas Klemm <andreas_at_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
Received on Wed Jun 11 17:08:21 2003

This archive was generated by hypermail 2.1.8 : Thu Mar 03 2016 - 06:43:12 EST