Guía del desarrollador para la creación de paquetes de aplicaciones

Cómo solicitar entrada de información al administrador

El paquete de este caso práctico tiene tres tipos de objetos. El administrador puede elegir cuál de los tres tipos se debe instalar y dónde ubicar los objetos en la máquina de instalación.

Técnicas

Este caso práctico muestra las técnicas siguientes:

Aproximación

Para configurar la instalación selectiva en este caso práctico, debe completar las tareas siguientes:

Archivos de casos prácticos

El archivo pkginfo

PKG=ncmp
NAME=NCMP Utilities
CATEGORY=application, tools
BASEDIR=/
ARCH=SPARC
VERSION=RELEASE 1.0, Issue 1.0
CLASSES=""
NCMPBIN=/bin
NCMPMAN=/usr/man
EMACS=/usr/emacs

El archivo prototype

i pkginfo
i request
x bin $NCMPBIN 0755 root other
f bin $NCMPBIN/dired=/usr/ncmp/bin/dired 0755 root other
f bin $NCMPBIN/less=/usr/ncmp/bin/less 0755 root other
f bin $NCMPBIN/ttype=/usr/ncmp/bin/ttype 0755 root other
f emacs $NCMPBIN/emacs=/usr/ncmp/bin/emacs 0755 root other
x emacs $EMACS 0755 root other
f emacs $EMACS/ansii=/usr/ncmp/lib/emacs/macros/ansii 0644 root other
f emacs $EMACS/box=/usr/ncmp/lib/emacs/macros/box 0644 root other
f emacs $EMACS/crypt=/usr/ncmp/lib/emacs/macros/crypt 0644 root other
f emacs $EMACS/draw=/usr/ncmp/lib/emacs/macros/draw 0644 root other
f emacs $EMACS/mail=/usr/ncmp/lib/emacs/macros/mail 0644 root other
f emacs $NCMPMAN/man1/emacs.1=/usr/ncmp/man/man1/emacs.1 0644 root other
d man $NCMPMAN 0755 root other
d man $NCMPMAN/man1 0755 root other
f man $NCMPMAN/man1/dired.1=/usr/ncmp/man/man1/dired.1 0644 root other
f man $NCMPMAN/man1/ttype.1=/usr/ncmp/man/man1/ttype.1 0644 root other
f man $NCMPMAN/man1/less.1=/usr/ncmp/man/man1/less.1 0644 inixmr other

La secuencia de comandos request

trap 'exit 3' 15
# determine if and where general executables should be placed
ans=`ckyorn -d y \
-p "Should executables included in this package be installed"
` || exit $?
if [ "$ans" = y ]
then
   CLASSES="$CLASSES bin"
   NCMPBIN=`ckpath -d /usr/ncmp/bin -aoy \
   -p "Where should executables be installed"
   ` || exit $?
fi
# determine if emacs editor should be installed, and if it should
# where should the associated macros be placed
ans=`ckyorn -d y \
-p "Should emacs editor included in this package be installed"
` || exit $?
if [ "$ans" = y ]
then
   CLASSES="$CLASSES emacs"
   EMACS=`ckpath -d /usr/ncmp/lib/emacs -aoy \
   -p "Where should emacs macros be installed"
   ` || exit $?
fi

Tenga en cuenta que una secuencia de comandos request puede salir sin dejar archivos en el sistema de archivos. En el caso de instalaciones en versiones de Solaris anteriores a 2.5 y versiones compatibles (donde no se pueda usar una secuencia de comandos checkinstall) la secuencia de comandos request es el lugar correcto para probar el sistema de archivos del modo necesario para asegurar que la instalación será satisfactoria. Cuando la secuencia de comandos request se termina con el código 1, la instalación se cerrará correctamente.

Estos archivos de ejemplo muestran el uso de rutas paramétricas para establecer varios directorios base. Sin embargo, el método preferido implica el uso del parámetro BASEDIR que se administra y se valida mediante el comando pkgadd. Siempre que se usen varios directorios base, tenga un cuidado especial en proporcionarlos para la instalación de varias versiones y arquitecturas de la misma plataforma.