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

Capítulo 4 Verificación y transferencia de un paquete

En este capítulo se describe cómo verificar la integridad del paquete y transferirlo a un medio de distribución, como un disquete o un CD-ROM.

A continuación puede ver una lista de la información general que se ofrece en este capítulo.

Verificación y transferencia de un paquete (mapa de tareas)

En la tabla siguiente se describen los pasos que debe seguir con el fin de verificar la integridad del paquete y transferirlo a un medio de distribución.

Tabla 4–1 Verificación y transferencia de un paquete (mapa de tareas)

Tarea 

Descripción 

Instrucciones 

1. Construir el paquete 

Construya el paquete en el disco. 

Capítulo 2Construcción de un paquete

2. Instalar el paquete 

Pruebe la instalación del paquete y asegúrese de que se instala sin errores. 

Cómo instalar un paquete en un servidor o un sistema autónomo

3. Verificar la integridad del paquete 

Use el comando pkgchk para verificar la integridad del paquete. 

Cómo verificar la integridad de un paquete

4. Obtener información adicional del paquete 

Optativa. Use los comandos pkginfo y pkgparam para llevar a cabo la verificación específica del paquete.

Visualización de información adicional sobre paquetes instalados

5. Suprimir el paquete instalado 

Use el comando pkgrm para suprimir el paquete instalado del sistema.

Cómo suprimir un paquete

6. Transferir el paquete a un medio de distribución 

Use el comando pkgtrans para transferir el paquete (con formato de paquete) a un medio de distribución.

Cómo transferir un paquete a un medio de distribución

Instalación de paquetes de software

Los paquetes de software se instalan mediante el comando pkgadd. Este comando transfiere el contenido de un paquete de software del medio de distribución o directorio y lo instala en un sistema.

En esta sección se ofrecen instrucciones básicas para instalar el paquete con el fin de verificar que se instala correctamente.

La base de datos de software de instalación

La información para todos los paquetes instalados en un sistema se mantiene en la base de datos de software de instalación. Hay una entrada para todos los objetos de un paquete, con información como el nombre del componente, dónde reside y su tipo. Una entrada contiene un registro del paquete al que pertenece un componente; otros paquetes que pueden hacer referencia al componente, e información como el nombre de la ruta, dónde reside el componente y de qué tipo es. Los comandos pkgadd y pkgrm agregan y suprimen automáticamente las entradas. Puede ver la información en la base de datos mediante los comandos pkgchk y pkginfo.

Se asocian dos tipos de información a cada componente de paquete. La información del atributo describe el componente en sí mismo. Por ejemplo, los permisos de acceso del componente, ID de propietario e ID de grupo son información de atributos. La información de contenido describe el contenido del componente, como el tamaño del archivo y la hora de la última modificación.

La base de datos de software de instalación hace un seguimiento del estado del paquete. Una paquete se puede instalar completamente (ha completado el proceso de instalación), o bien parcialmente (no ha completado el proceso de instalación).

Si un paquete se instala parcialmente, es posible que partes de un paquete se hayan instalado antes de que se terminara la instalación; por ello, una parte del paquete está instalada y registrada en la base de datos, y una parte no. Cuando vuelve a instalar el paquete, se le indica que comience en el punto en que se detuvo la instalación porque el comando pkgadd puede acceder a la base de datos y detectar qué partes se han instalado ya. También puede suprimir las partes que se han instalado, de acuerdo con la información de la base de datos de software de instalación mediante el comando pkgrm.

Interactuación con el comando pkgadd

Si el comando pkgadd encuentra un problema, en primer lugar comprueba las instrucciones en el archivo de administración de la instalación. (Consulte admin(4) para obtener más información.) Si no se encuentran instrucciones, o bien si el parámetro pertinente del archivo de administración está configurado en ask, pkgadd muestra un mensaje que describe el problema y solicita una respuesta. La solicitud es Do you want to continue with this installation? (¿Desea continuar con la instalación?). Debe responder con yes (sí), no o quit (salir).

Si ha especificado más de un paquete, no detiene la instalación del paquete pero pkgadd continúa con la instalación de otros paquetes. quit indica que pkgadd debe detener la instalación de todos los paquetes.

Instalación de paquetes en sistemas autónomos o servidores en un entorno homogéneo

En esta sección se describe cómo instalar paquetes en un sistema autónomo o un servidor en un entorno homogéneo.

ProcedureCómo instalar un paquete en un servidor o un sistema autónomo

  1. Construya el paquete.

    Consulte Construcción de un paquete, si fuera necesario.

  2. Inicie la sesión como superusuario.

  3. Agregue el paquete de software al sistema.


    # pkgadd -d device-name [pkg-abbrev...]

    -d nombre_dispositivo

    Especifica la ubicación del paquete. Tenga en cuenta que nombre_dispositivo puede ser un nombre de ruta de directorio completo o los identificadores de una cinta, disquete o disco extraíble.

    abrev_paquete

    Es el nombre de uno o más paquetes (separados por espacios) que se agregarán. Si se omite, pkgadd instala todos los paquetes disponibles.


Ejemplo 4–1 Instalación de paquetes en servidores y sistemas autónomos

Para instalar un paquete de software de nombre pkgA a partir de un dispositivo de cinta de nombre /dev/rmt/0, debería especificar el comando siguiente:


# pkgadd -d /dev/rmt/0 pkgA

También puede instalar varios paquetes al mismo tiempo, siempre que separe sus nombres con un espacio, de este modo:


# pkgadd -d /dev/rmt/0 pkgA pkgB pkgC

Si no nombra el dispositivo en el que reside el paquete, el comando comprueba el directorio de cola predeterminado (/var/spool/pkg). Si el paquete no está allí, la instalación falla.


Véase también

Si está preparado para ir a la tarea siguiente, consulte Cómo verificar la integridad de un paquete.

Verificación de la integridad de un paquete

El comando pkgchk permite comprobar la integridad de los paquetes, si están instalados en un sistema o con formato de paquete (listo para instalarse con el comando pkgadd). Confirma la estructura del paquete o los archivos instalados y los directorios, o bien muestra información sobre objetos del paquete. El comando pkgchk puede enumerar o comprobar lo siguiente:

Para obtener más información sobre este comando, consulte pkgchk(1M).

El comando pkgchk lleva a cabo dos tipos de comprobaciones. Comprueba los atributos del archivo (los permisos y la propiedad de un archivo, así como los números principales o secundarios del bloque o los dispositivos especiales de caracteres) y el contenido de los archivos (el tamaño, la suma de comprobación y la fecha de modificación). De forma predeterminada, el comando comprueba los atributos y el contenido de los archivos.

El comando pkgchk también compara los atributos y el contenido de los archivos del paquete instalado con la base de datos de software de instalación. Las entradas relacionadas con un paquete pueden haber cambiado desde el tiempo de la instalación; por ejemplo, puede que otro paquete haya cambiado un componente del paquete. La base de datos refleja dicho cambio.

ProcedureCómo verificar la integridad de un paquete

  1. Instale el paquete.

    Consulte Cómo instalar un paquete en un servidor o un sistema autónomo si fuera necesario.

  2. Verifique la integridad del paquete.


    # pkgchk  [-v] [-R root-path] [pkg-abbrev...]

    -v

    Muestra los archivos a medida que se procesan. 

    -R ruta_raíz

    Especifica la ubicación del sistema de archivos raíz del sistema cliente. 

    abrev_paquete

    Es el nombre de uno o más paquetes (separados por espacios) que se comprobarán. Si se omite, pkgchk comprueba todos los paquetes disponibles.


Ejemplo 4–2 Verificación de la integridad de un paquete

Este ejemplo muestra el comando que debe usar para verificar la integridad de un paquete instalado.


$ pkgchk pkg-abbrev
$

Si hay errores, el comando pkgchk los imprime. De lo contrario, no se imprime nada y devuelve un código de salida de 0. Si no proporciona una abreviación de paquete, comprobará todos los paquetes del sistema.

Si lo desea, puede usar la opción -v, que imprimirá una lista de archivos del paquete si no hay errores. Por ejemplo:


$ pkgchk -v SUNWcadap
/opt/SUNWcadap
/opt/SUNWcadap/demo
/opt/SUNWcadap/demo/file1
/opt/SUNWcadap/lib
/opt/SUNWcadap/lib/file2
/opt/SUNWcadap/man
/opt/SUNWcadap/man/man1
/opt/SUNWcadap/man/man1/file3.1
/opt/SUNWcadap/man/man1/file4.1
/opt/SUNWcadap/man/windex
/opt/SUNWcadap/srcfiles
/opt/SUNWcadap/srcfiles/file5
/opt/SUNWcadap/srcfiles/file6
$

Si necesita verificar un paquete que esté instalado en el sistema de archivos raíz de un sistema cliente, use este comando:


$ pkgchk -v -R root-path pkg-abbrev

Véase también

Si está preparado para ir a la tarea siguiente, consulte Cómo obtener información con el comando pkginfo.

Visualización de información adicional sobre paquetes instalados

Puede usar los otros dos comandos para mostrar información sobre los paquetes instalados:

El comando pkgparam

El comando pkgparam permite mostrar los valores asociados a los parámetros que especificó en la línea de comandos. Los valores de un paquete específico se recuperan del archivo pkginfo o del archivo que indique. Se muestra un valor de parámetro por línea. Puede mostrar los valores solamente o los parámetros y sus valores.

ProcedureCómo obtener información con el comando pkgparam

  1. Instale el paquete.

    Consulte Cómo instalar un paquete en un servidor o un sistema autónomo si fuera necesario.

  2. Muestre información adicional sobre el paquete.


    # pkgparam [-v] pkg-abbrev [param...]

    -v

    Muestra el nombre del parámetro y su valor. 

    abrev_paquete

    Es el nombre de un paquete específico. 

    param

    Especifica uno o más parámetros cuyos valores se muestran. 


Ejemplo 4–3 Obtención de información con el comando pkgparam

Por ejemplo, para mostrar valores solamente, use este comando.


$ pkgparam SUNWcadap
none
/opt
US/Mountain
/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin
/usr/sadm/sysadm
SUNWcadap
Chip designers need CAD application software to design abc
chips.  Runs only on xyz hardware and is installed in the usr
partition.
system
release 1.0
SPARC
venus990706083849
SUNWcadap
/var/sadm/pkg/SUNWcadap/save
Jul 7 1999 09:58
$

Para mostrar parámetros y sus valores, use el comando siguiente.


$ pkgparam -v SUNWcadap
pkgparam -v SUNWcadap
CLASSES='none'
BASEDIR='/opt'
TZ='US/Mountain'
PATH='/sbin:/usr/sbin:/usr/bin:/usr/sadm/install/bin'
OAMBASE='/usr/sadm/sysadm'
PKG='SUNWcadap'
NAME='Chip designers need CAD application software to design abc chips.  
Runs only on xyz hardware and is installed in the usr partition.'
CATEGORY='system'
VERSION='release 1.0'
ARCH='SPARC'
PSTAMP='venus990706083849'
PKGINST='SUNWcadap'
PKGSAV='/var/sadm/pkg/SUNWcadap/save'
INSTDATE='Jul 7 1999 09:58'
$

O bien, si desea mostrar el valor de un parámetro específico, use este formato:


$ pkgparam SUNWcadap BASEDIR
/opt
$

Para obtener más información, consulte pkgparam(1).


Véase también

Si está listo para ir a la tarea siguiente, consulte Cómo suprimir un paquete.

El comando pkginfo

Puede mostrar información sobre paquetes instalados con el comando pkginfo. Este comando tiene varias opciones que permiten personalizar tanto el formato como el contenido de lo que se visualiza.

Puede solicitar información sobre el número de instancias de paquetes que desee.

Visualización predeterminada de pkginfo

Si el comando pkginfo se ejecuta sin opciones, muestra la categoría, la instancia de paquete y el nombre de todos los paquetes que se han instalado completamente en el sistema. La pantalla se organiza por categorías, tal como se muestra en el ejemplo siguiente.


$ pkginfo
.
.
.
system      SUNWinst       Install Software
system      SUNWipc        Interprocess Communications
system      SUNWisolc      XSH4 conversion for ISO Latin character sets
application SUNWkcspf      KCMS Optional Profiles
application SUNWkcspg      KCMS Programmers Environment
application SUNWkcsrt      KCMS Runtime Environment
.
.
.
$

Personalización del formato de la pantalla de pkginfo

Puede ver la pantalla de pkginfo con tres formatos diferentes: corto, extraído y largo.

El formato corto es el predeterminado. Sólo muestra la categoría, la abreviatura del paquete y el nombre completo del paquete, tal como se indica en Visualización predeterminada de pkginfo.

El formato extraído muestra la abreviatura, el nombre y la arquitectura del paquete (si están disponibles), así como su versión (si está disponible). Use la opción -x para solicitar el formato extraído tal como aparece en el ejemplo siguiente.


$ pkginfo -x
.
.
.
SUNWipc         Interprocess Communications
                (sparc) 11.8.0,REV=1999.08.20.12.37
SUNWisolc       XSH4 conversion for ISO Latin character sets
                (sparc) 1.0,REV=1999.07.10.10.10
SUNWkcspf       KCMS Optional Profiles
                (sparc) 1.1.2,REV=1.5
SUNWkcspg       KCMS Programmers Environment
                (sparc) 1.1.2,REV=1.5
.
.
.
$

El uso de la opción -l produce una pantalla de formato largo donde se muestra toda la información disponible de un paquete, como en el ejemplo anterior.


$ pkginfo -l SUNWcadap
   PKGINST:  SUNWcadap
      NAME:  Chip designers need CAD application software to
design abc chips.  Runs only on xyz hardware and is installed
in the usr partition.
  CATEGORY:  system
      ARCH:  SPARC
   VERSION:  release 1.0
   BASEDIR:  /opt
    PSTAMP:  system980706083849
  INSTDATE:  Jul 7 1999 09:58
    STATUS:  completely installed
     FILES:     13 installed pathnames
                 6 directories
                 3 executables
              3121 blocks used (approx)
$

Descripciones de parámetros para el formato largo de pkginfo

En la tabla siguiente se describen los parámetros del paquete que se pueden mostrar para cada paquete. Un parámetro y su valor aparecen solamente cuando el parámetro tiene un valor asignado.

Tabla 4–2 Parámetros de paquetes

Parámetro 

Descripción 

ARCH

La arquitectura admitida por este paquete. 

BASEDIR

El directorio base donde reside el paquete de software (se muestra si el paquete es reubicable). 

CATEGORY

Las categorías de software de las que este paquete es miembro (por ejemplo, system o application).

CLASSES

Una lista de clases definida para un paquete. El orden de la lista determina el orden en que se instalan las clases. Las clases enumeradas en primer lugar se instalan primero (medio a medio). Este parámetro se puede modificar mediante la secuencia de comandos de solicitud.  

DESC

Texto que describe el paquete. 

EMAIL

La dirección de correo electrónico para las consultas del usuario. 

HOTLINE

Información sobre cómo recibir ayuda al instante sobre este paquete. 

INTONLY

Indica que el paquete sólo debe instalarse interactivamente cuando se configura con un valor diferente de NULL. 

ISTATES

Una lista de estados de ejecución posibles para la instalación de paquetes (por ejemplo, S s 1).

MAXINST

Número máximo de instancias de paquetes que se deben permitir en una máquina al mismo tiempo. De forma predeterminada, sólo se permite una instancia de un paquete. 

NAME

Nombre del paquete, generalmente texto que describe la abreviatura del paquete. 

ORDER

Lista de clases que define el orden en que se deben colocar en el medio. Utilizado por el comando pkgmk en la creación del paquete. Las clases que no están definidas en este parámetro se colocan en el medio mediante procedimientos de ordenación estándar.

PKGINST

Abreviatura del paquete que se está instalando. 

PSTAMP

Marca de producción de este paquete. 

RSTATES

Lista de estados de ejecución posibles para la eliminación de paquetes (por ejemplo, S s 1).

ULIMIT

Si está configurado, este parámetro se pasa como argumento al comando ulimit, que establece el tamaño máximo de un archivo durante la instalación. Esto se aplica solamente a archivos creados por secuencias de comandos de procedimientos.

VENDOR

Nombre del distribuidor que proporcionó el paquete de software. 

VERSION

Versión de este paquete.  

VSTOCK

Número de existencias proporcionado por el distribuidor. 

Para obtener información detallada sobre el comando pkginfo, consulte la página de comando man pkginfo(1).

ProcedureCómo obtener información con el comando pkginfo

  1. Instale el paquete.

    Consulte Cómo instalar un paquete en un servidor o un sistema autónomo si fuera necesario.

  2. Muestre información adicional sobre el paquete.


    # pkginfo [-x | -l] [pkg-abbrev]

    -x

    Muestra información del paquete en formato extraído. 

    -l

    Muestra información del paquete en formato largo. 

    abrev_paquete

    Es el nombre de un paquete específico. Si se omite, el comando pkginfo muestra información sobre todos los paquetes instalados, en el formato predeterminado.

Paso siguiente

Si está listo para ir a la tarea siguiente, consulte Cómo suprimir un paquete.

Eliminación de un paquete

Debido a que el comando pkgrm actualiza la información en la base de datos de productos de software, es importante, si suprime un paquete, usar el comando pkgrm, aunque esté tentado de usar el comando rm en su lugar. Por ejemplo, podría usar el comando rm para suprimir un archivo ejecutable binario, aunque no es lo mismo que usar pkgrm para suprimir el paquete de software que incluye dicho ejecutable binario. El uso del comando rm para suprimir archivos de un paquete dañará la base de datos de productos de software. (Si en realidad sólo desea suprimir un archivo, puede usar el comando removef, que actualizará la base de datos de productos de software correctamente.

ProcedureCómo suprimir un paquete

  1. Inicie la sesión en el sistema como superusuario.

  2. Suprima un paquete instalado.


    # pkgrm pkg-abbrev ...

    abrev_paquete

    Es el nombre de uno o más paquetes (separados por espacios). Si se omite, pkgrm suprime todos los paquetes disponibles.

  3. Verifique que el paquete se haya suprimido satisfactoriamente con el comando pkginfo.


    $ pkginfo | egrep pkg-abbrev
    

    Si se ha instalado abrev_paquete, el comando pkginfo devuelve una línea de información al respecto. De lo contrario, pkginfo devuelve el indicador del sistema.

Transferencia de un paquete a un medio de distribución

El comando pkgtrans mueve los paquetes y lleva a cabo traducciones de formato de los paquetes. Puede usar el comando pkgtrans para llevar a cabo las traducciones siguientes de un paquete instalable:

ProcedureCómo transferir un paquete a un medio de distribución

  1. Construya el paquete; cree un paquete con formato de directorio, si no lo ha hecho todavía.

    Para obtener más información, consulte Cómo construir un paquete.

  2. Instale el paquete para verificar que se instale correctamente.

    Consulte Cómo instalar un paquete en un servidor o un sistema autónomo si fuera necesario.

  3. Verifique la integridad del paquete.

    Consulte Cómo verificar la integridad de un paquete, Cómo obtener información con el comando pkginfo y Cómo obtener información con el comando pkgparam, si fuera necesario.

  4. Quite el paquete instalado del sistema.

    Consulte Cómo suprimir un paquete, si fuera necesario.

  5. Transfiera el paquete (con formato de paquete) a un medio de distribución.

    Para llevar a cabo una traducción básica, ejecute el comando siguiente:


    $ pkgtrans device1 device2 [pkg-abbrev...]

    dispositivo1

    Es el nombre del dispositivo donde reside actualmente el paquete. 

    dispositivo2

    Es el nombre del dispositivo en el que se escribirá el paquete traducido. 

    [abrev_paquete]

    Es una o más abreviaturas de paquetes. 

    Si no se proporcionan nombres de paquetes, todos los paquetes que se encuentren en el dispositivo1 se traducen y se escriben en el dispositivo2.


    Nota –

    Si más de una instancia de un paquete reside en el dispositivo1, debe usar un identificador de instancias para el paquete. Para obtener una descripción de un identificador de paquetes, consulte Definición de la instancia de un paquete. Cuando una instancia del paquete que se está traduciendo ya existe en el dispositivo2, el comando pkgtrans no lleva a cabo la traducción. Puede usar la opción -o para indicar al comando pkgtrans que sobrescriba las instancias del dispositivo de destino y la opción -n para indicarle que cree una nueva instancia si ya existe una. Tenga en cuenta que esta comprobación no se aplica cuando el dispositivo2 admite un formato de flujo de datos.


Paso siguiente

En este momento ha completado todos los pasos necesarios para diseñar, construir, verificar y transferir el paquete. Si está interesado en consultar algunos casos prácticos, consulte Capítulo 5Casos prácticos de creación de paquetes. Si está interesado en ideas de diseño de paquetes avanzados, consulte el Capítulo 6Técnicas avanzadas para la creación de paquetes.