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

ProcedureCómo construir un paquete

  1. Cree un archivo pkginfo, si no lo ha hecho ya.

    Para conocer las instrucciones detalladas, consulte Cómo crear un archivo pkginfo.

  2. Cree un archivo prototype, si no lo ha hecho ya.

    Para obtener instrucciones detalladas, consulte Cómo crear un archivo prototype mediante el comando pkgproto.

  3. Haga los cambios necesarios para que el directorio de trabajo actual sea el mismo que contiene el archivo prototype del paquete.

  4. Construya su paquete.


    $ pkgmk [-o] [-a arch] [-b base-src-dir] [-d device]
       [-f filename] [-l limit] [-p pstamp] [-r rootpath]
       [-v version] [PARAM=value] [pkginst]
    -o

    Sobrescribe la versión actual del paquete.

    -a arq

    Anula la información de arquitectura del archivo pkginfo.

    -b dir_ori_base

    Solicita que dir_ori_base se agregue al comienzo de nombres de ruta reubicables cuando el comando pkgmk busque objetos en el sistema de desarrollo.

    -d dispositivo

    Especifica que el paquete debe copiarse en dispositivo que puede ser un nombre de ruta absoluta de directorio, un disquete o un disco extraíble.

    -f nombre_archivo

    Nombra un archivo, nombre_archivo, que se usa como archivo prototype. Los nombres predeterminados son prototype o Prototype.

    -l límite

    Especifica el tamaño máximo, en bloques de 512 bytes, del dispositivo de salida.

    -p indicación_p

    Anula la definición de indicación de producción en el archivo pkginfo.

    -r ruta_raíz

    Solicita que el directorio raíz ruta_raíz se use para encontrar los objetos en el sistema de desarrollo.

    -v versión

    Anula la información de la versión del archivo pkginfo.

    PARAM=valor

    Configura las variables de entorno globales. Las variables que comienzan por minúscula se resuelven en el tiempo de la construcción. Las que comienzan por mayúscula se sitúan en el archivo pkginfo para usarlo en el tiempo de la instalación.

    pkginst

    Especifica un paquete por su abreviatura o instancia específica (por ejemplo, SUNWcadap.4).

    Para obtener más información, consulte la página de comando man pkgmk(1).

  5. Compruebe el contenido del paquete.


    $ pkgchk -d device-name pkg-abbrev
    Checking uninstalled directory format package pkg-abbrev
    from device-name
    ## Checking control scripts.
    ## Checking package objects.
    ## Checking is complete.
    $
    -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 o disco extraíble.

    abreviatura_paquete

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

    El comando pkgchk imprime qué aspectos del paquete se comprueban y muestra advertencias o errores, según sea el caso. Para obtener más información sobre el comando pkgchk, consulte Verificación de la integridad de un paquete.


    Precaución – Precaución –

    Los errores se deben tener en cuenta especialmente. Un error puede significar que una secuencia de comandos debe corregirse. Compruebe todos los errores y continúe si no está de acuerdo con la salida del comando pkgchk.



Ejemplo 2–2 Construcción de un paquete

Este ejemplo usa el archivo prototype creado en Ajuste de un archivo prototype creado con el comando pkgproto.


$ cd /home/jane/InfoFiles
$ pkgmk
## Building pkgmap from package prototype file.
## Processing pkginfo file.
WARNING: parameter  set to "system990708093144"
WARNING: parameter  set to "none"
## Attempting to volumize 13 entries in pkgmap.
part  1 -- 3170 blocks, 17 entries
## Packaging one part.
/var/spool/pkg/SUNWcadap/pkgmap
/var/spool/pkg/SUNWcadap/pkginfo
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6
## Validating control scripts.
## Packaging complete.
$


Ejemplo 2–3 Especificación de un directorio de origen para los archivos reubicables

Si el paquete contiene archivos reubicables, puede usar la opción -b dir_ori_base en el comando pkgmk para especificar un nombre de ruta que agregar al comienzo de los nombres de ruta reubicables mientras el paquete se está creando. Esta opción es útil si no ha usado el formato ruta1=ruta2 para los archivos reubicables ni especificado una ruta de búsqueda con el comando !search en el archivo prototype.

El comando siguiente construye un paquete con las características siguientes:


$ cd /home/jane/InfoFiles
$ pkgmk -o -b /home/jane
## Building pkgmap from package prototype file.
## Processing pkginfo file.
WARNING: parameter  set to "system960716102636"
WARNING: parameter  set to "none"
## Attempting to volumize 13 entries in pkgmap.
part  1 -- 3170 blocks, 17 entries
## Packaging one part.
/var/spool/pkg/SUNWcadap/pkgmap
/var/spool/pkg/SUNWcadap/pkginfo
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/demo/file1
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/lib/file2
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file3.1
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/man1/file4.1
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/man/windex
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file5
/var/spool/pkg/SUNWcadap/reloc/SUNWcadap/srcfiles/file6
## Validating control scripts.
## Packaging complete.

En este ejemplo, el paquete se construye en el directorio predeterminado /var/spool/pkg, mediante la especificación de la opción -o. Esta opción sobrescribe el paquete que se creó en el Ejemplo 2–2.



Ejemplo 2–4 Especificación de diversos directorios de origen para los archivos de información y los objetos de los paquetes

Si coloca archivos de información de paquetes (como pkginfo y prototype) y objetos de paquetes en dos directorios diferentes, puede crear el paquete si usa las opciones -b dir_ori_base y -r ruta_raíz en el comando pkgmk. Si tiene objetos de paquetes en un directorio llamado /product/pkgbin y los demás archivos de información de paquetes en un directorio llamado /product/pkgsrc, podría usar el comando siguiente para situar el paquete en el directorio /var/spool/pkg:


$ pkgmk -b /product/pkgbin -r /product/pkgsrc -f /product/pkgsrc/prototype

De forma optativa, puede usar estos comandos para conseguir el mismo resultado:


$ cd /product/pkgsrc
$ pkgmk -o -b /product/pkgbin

En este ejemplo, el comando pkgmk usa el directorio de trabajo actual para buscar las partes restantes del paquete (como los archivos de información prototype y pkginfo).


Véase también

Si desea agregar secuencias de comandos de instalación y archivos de información optativos al paquete, consulte Capítulo 3Mejora de las funciones de un paquete (tareas). De lo contrario, después de construir el paquete, debe verificar su integridad. Capítulo 4Verificación y transferencia de un paquete explica cómo hacerlo y ofrece instrucciones detalladas sobre cómo transferir el paquete verificado a un medio de distribución.