JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Guía del desarrollador para la creación de paquetes de aplicaciones     Oracle Solaris 10 1/13 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

1.  Diseño de un paquete

2.  Creación de un paquete

3.  Mejora de las funciones de un paquete (tareas)

4.  Verificación y transferencia de un paquete

5.  Casos prácticos de creación de paquetes

6.  Técnicas avanzadas para la creación de paquetes

Especificación del directorio base

El archivo administrativo predeterminado

Familiarización con la incertidumbre

Uso del parámetro BASEDIR

Uso de directorios base paramétricos

Ejemplos: uso de directorios base paramétricos

El archivo pkginfo

El archivo pkgmap

Administración del directorio base

Posibilidad de reubicación

Recorrido de directorios base

Uso del parámetro BASEDIR

El archivo pkginfo

El archivo pkgmap

Ejemplo: secuencias de comandos de análisis que recorren un BASEDIR

La secuencia de comandos request

La secuencia de comandos checkinstall

Uso de rutas paramétricas relativas

El archivo pkginfo

El archivo pkgmap

Ejemplo: una secuencia de comandos request que recorra una ruta paramétrica relativa

Admisión de la reubicación en un entorno heterogéneo

Aproximación tradicional

Paquetes reubicables

Ejemplo: paquete reubicable tradicional

El archivo pkginfo

El archivo pkgmap

Paquetes absolutos

Ejemplo: paquete absoluto tradicional

El archivo pkgmap

Paquetes compuestos

Ejemplo: solución tradicional

El archivo pkginfo

El archivo pkgmap

Más allá de la tradición

Otra mirada a los paquetes compuestos

Cómo conseguir que los nombres de rutas absolutas tengan el aspecto de reubicables

Ejemplo: modificación de un archivo

Descripción

Implementación

Ejemplo

Ejemplo: creación de un nuevo archivo

Descripción

Implementación

Ejemplo

Ejemplo: un paquete compuesto

El archivo pkginfo

El archivo pkgmap

Creación de paquetes de instalación remota

Ejemplo: instalación en un sistema cliente

Ejemplo: instalación en un servidor o sistema autónomo

Ejemplo: montaje de sistemas de archivos compartidos

Paquetes de parches

La secuencia de comandos checkinstall

La secuencia de comandos preinstall

Secuencia de comandos de acción de clase

La secuencia de comandos postinstall

La secuencia de comandos patch_checkinstall

La secuencia de comandos patch_postinstall

Actualización de paquetes

La secuencia de comandos request

La secuencia de comandos postinstall

Creación de paquetes de archivo de clase

Estructura del directorio de paquetes de archivos

Palabras clave para admitir paquetes de archivo de clase

La utilidad faspac

Glosario

Índice

Actualización de paquetes

El proceso para actualizar un paquete es muy diferente del proceso para sobrescribirlo. Si bien hay herramientas especiales para admitir la actualización de paquetes estándar distribuidos como parte del sistema operativo Oracle Solaris, se puede diseñar un paquete no integrado para que admita su propia actualización. En diversos ejemplos anteriores, se describieron paquetes que van más allá y controlan el método exacto de instalación bajo la dirección del administrador. Puede diseñar la secuencia de comandos request para que admita también la actualización directa de un paquete. Si el administrador elige la instalación de un paquete para que sustituya a otro completamente, sin que queden archivos obsoletos residuales, las secuencias de comandos de paquetes permiten esta posibilidad.

Las secuencias de comandos request y postinstall de este ejemplo ofrecen un único paquete actualizable. La secuencia de comandos request se comunica con el administrador y, a continuación, configura un único archivo en el directorio /tmp para suprimir la instancia de paquete anterior. (Aunque la secuencia de comandos request cree un archivo (lo cual está prohibido), no hay ningún problema, ya que todos tienen acceso a /tmp).

La secuencia de comandos postinstall ejecuta a continuación la secuencia de comandos de shell en /tmp que ejecuta el comando pkgrm necesario relacionado con el paquete anterior y después se suprime.

Este ejemplo ilustra una actualización básica. Son menos de 50 líneas de código, incluidos algunos mensajes bastante largos. Se podría ampliar para anular la actualización o llevar a cabo otras transformaciones principales en el paquete, según lo requiera el diseñador.

El diseño de la interfaz de usuario para una opción de actualización debe estar completamente seguro de que el administrador tiene plena conciencia del proceso y que ha solicitado activamente la actualización en lugar de una instalación paralela. No hay problemas en llevar a cabo una operación compleja bien comprendida como una actualización siempre que la interfaz del usuario deje la operación clara.

La secuencia de comandos request

# request script
control an upgrade installation
 
PATH=/usr/sadm/bin:$PATH
UPGR_SCRIPT=/tmp/upgr.$PKGINST
 
UPGRADE_MSG="Do you want to upgrade the installed version ?"
 
UPGRADE_HLP="If upgrade is desired, the existing version of the \
    package will be replaced by this version. If it is not \
    desired, this new version will be installed into a different \
    base directory and both versions will be usable."
 
UPGRADE_NOTICE="Conflict approval questions may be displayed. The \
    listed files are the ones that will be upgraded. Please \
    answer \"y\" to these questions if they are presented."
 
pkginfo -v 1.0 -q SUNWstuf.\*
 
if [ $? -eq 0 ]; then
      # See if upgrade is desired here
      response=`ckyorn -p "$UPGRADE_MSG" -h "$UPGRADE_HLP"`
      if [ $response = "y" ]; then
            OldPkg=`pkginfo -v 1.0 -x SUNWstuf.\* | nawk ' \
            /SUNW/{print $1} '`
            # Initiate upgrade
            echo "PATH=/usr/sadm/bin:$PATH" > $UPGR_SCRIPT
            echo "sleep 3" >> $UPGR_SCRIPT
            echo "echo Now removing old instance of $PKG" >> \
            $UPGR_SCRIPT
            if [ ${PKG_INSTALL_ROOT} ]; then
                  echo "pkgrm -n -R $PKG_INSTALL_ROOT $OldPkg" >> \
                  $UPGR_SCRIPT
            else
                  echo "pkgrm -n $OldPkg" >> $UPGR_SCRIPT
            fi
            echo "rm $UPGR_SCRIPT" >> $UPGR_SCRIPT
            echo "exit $?" >> $UPGR_SCRIPT
 
            # Get the original package's base directory
            OldBD=`pkgparam $OldPkg BASEDIR`
            echo "BASEDIR=$OldBD" > $1
            puttext -l 5 "$UPGRADE_NOTICE"
       else
             if [ -f $UPGR_SCRIPT ]; then
                   rm -r $UPGR_SCRIPT
             fi
       fi
fi
 
exit 0

La secuencia de comandos postinstall

# postinstall
to execute a simple upgrade
 
PATH=/usr/sadm/bin:$PATH
UPGR_SCRIPT=/tmp/upgr.$PKGINST
 
if [ -f $UPGR_SCRIPT ]; then
      sh $UPGR_SCRIPT &
fi
 
exit 0