Además de definir cada objeto de paquete en el archivo prototype, también puede hacer lo siguiente:
Definir objetos adicionales que se deben crear en el tiempo de la instalación.
Crear vínculos en el tiempo de la instalación.
Distribuir paquetes en varios volúmenes.
Anidar archivos prototype.
Establecer un valor predeterminado para los campos modo, propietario y grupo.
Proporcionar una ruta de búsqueda para el comando pkgmk.
Configurar variables de entorno.
Consulte las secciones siguientes para obtener información sobre cómo efectuar estos cambios.
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.
Parar crear vínculos durante la instalación de los paquetes, defina lo siguiente en la entrada del archivo prototype para el objeto vinculado:
Su tipo de archivo como l (un vínculo) o s (un vínculo simbólico).
El nombre de ruta del objeto vinculado con el formato ruta1=ruta2, donde ruta1 es el destino y ruta2 es el archivo de origen. Como norma general, la ruta2 de un vínculo no debe ser nunca absoluta, sino que debe ser relativa a la parte del directorio de ruta1. Por ejemplo, un archivo prototype que define un vínculo simbólico podría tener el aspecto siguiente:
s none etc/mount=../usr/etc/mount |
Los vínculos relativos se especificarían de este modo si el paquete está instalado como reubicable o absoluto.
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.
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 |
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 |
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.
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 |
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.
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.