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

Adición de funciones a un archivo prototype

Además de definir cada objeto de paquete en el archivo prototype, también puede hacer lo siguiente:

Consulte las secciones siguientes para obtener información sobre cómo efectuar estos cambios.

Definición de objetos adicionales que se deben crear en el tiempo de la instalación

Puede usar el archivo prototype para definir objetos que no se ofrezcan en el medio de instalación. Durante la instalación, mediante el comando pkgadd, estos objetos se crean con los tipos de archivos necesarios, si no existen ya en el tiempo de la instalación.

Para especificar la creación de un objeto en el sistema de destino, agréguele una entrada en el archivo prototype con el tipo de archivo adecuado.

Por ejemplo, si desea que se cree un directorio en el sistema de destino, pero no desea ofrecerlo en el medio de instalación, agregue la entrada siguiente para el directorio en el archivo prototype:


d none /directory 0644 root other

Si desea crear un archivo vacío en el sistema de destino, una entrada para el archivo en el archivo prototype podría tener el aspecto siguiente:


f none filename=/dev/null 0644 bin bin

Los únicos objetos que deben entregarse en el medio de instalación son archivos regulares y secuencias de comandos de edición (tipos de archivos e, v, f) y los directorios necesarios para incluirlos. Los objetos adicionales se crean sin hacer referencia a los vínculos simbólicos, vínculos físicos, dispositivos, conducciones con nombre, directorios y objetos entregados.

Creación de vínculos en el tiempo de la instalación

Parar crear vínculos durante la instalación de los paquetes, defina lo siguiente en la entrada del archivo prototype para el objeto vinculado:

Los vínculos relativos se especificarían de este modo si el paquete está instalado como reubicable o absoluto.

Distribución de paquetes en varios volúmenes

Cuando construye el paquete con el comando pkgmk, éste lleva a cabo los cálculos y las acciones necesarias para organizar un paquete de varios volúmenes. Un paquete de varios volúmenes recibe el nombre de paquete segmentado.

Sin embargo, puede usar el campo parte optativo en el archivo prototype para definir en qué parte desea ubicar un objeto. Un número de este campo anula el comando pkgmk y fuerza la colocación del componente en la parte concreta del campo. Observe que hay una correspondencia de igual a igual entre las partes y los volúmenes para los medios extraíbles formateados como sistemas de archivos. Si el desarrollador asigna previamente los volúmenes, el comando pkgmk emite un error si no hay suficiente espacio en un volumen.

Anidado de archivos prototype

Puede crear varios archivos prototype y después incluirlos mediante el comando !include en el archivo prototype. Anidar archivos puede ser una opción para facilitar el mantenimiento.

En el ejemplo siguiente hay tres archivos prototype. Se está modificando el archivo principal (prototype). Los otros dos archivos (proto2 y proto3) se están incluyendo.


!include /source-dir/proto2
!include /source-dir/proto3

Configuración de valores predeterminados para los campos modo, propietario y grupo

Con el fin de configurar valores predeterminados para los campos modo, propietario y grupo para objetos de paquetes específicos, puede insertar el comando !default en el archivo prototype. Por ejemplo:


!default 0644 root other

Nota –

El intervalo del comando !default comienza donde se insertó y se extiende hasta el fin del archivo. El intervalo del comando no abarca los archivos incluidos.


Sin embargo, en el caso de directorios (tipo de archivo d) y archivos modificables (tipo de archivo e) que sabe que existe en los sistemas de destino (como /usr o /etc/vfstab), compruebe que los campos modo, propietario y grupo del archivo prototype se establecen como signos de interrogación (?). De este modo no destruirá los valores que un administrador del sitio puede haber modificado.

Cómo proporcionar una ruta de búsqueda para el comando pkgmk

Si la ubicación de origen de los objetos del paquete es diferente de su ubicación de destino y no desea usar el formato ruta1=ruta2 tal como se describe en Unas palabras sobre las ubicaciones de origen y de destino del objeto, entonces puede usar el comando !search en el archivo prototype.

Por ejemplo, si ha creado un directorio, pkgfiles, en el directorio de inicio, y contiene todos los archivos de información y las secuencias de comandos de instalación, puede determinar que se busque en este directorio cuando el paquete se construya con el comando pkgmk.

El comando del archivo prototype tendría este aspecto:


!search /home-dir/pkgfiles

Nota –

Las solicitudes de búsqueda no abarcan los archivos incluidos. Además, la búsqueda se limita a los directorios específicos enumerados y no se lleva a cabo de forma recursiva.


Configuración de las variables de entorno

También puede agregar comandos al archivo prototype con el formato !PARAM=valor. Los comandos con este formato definen variables en el entorno actual. Si tiene varios archivos prototype, el ámbito de este comando es local para el archivo prototype donde se ha definido.

La variable PARAM puede comenzar por una letra en minúscula o en mayúscula. Si el valor de la variable PARAM no se conoce en el tiempo de la construcción, el comando pkgmk se cancela de forma incorrecta. Para obtener más información sobre la diferencia entre las variables de instalación y de construcción, consulte Variables de entorno de paquetes.