Guia do Desenvolvedor de Empacotamento de Aplicativos

Adicionando funcionalidade a um arquivo prototype

Além de definir cada objeto de pacote no arquivo prototype, você também pode:

Consulte as seções seguintes para obter informações sobre a realização destas alterações.

Definindo objetos adicionais a serem criados no tempo de instalação

Você pode usar o arquivo prototype para definir objetos que ainda não foram entregues ao meio de instalação. Durante a instalação, usando o comando pkgadd, estes objetos são criados com os tipos de arquivo requeridos, se ainda não existirem no momento da instalação.

Para especificar que um objeto seja criado no sistema de destino, adicione uma entrada para tal objeto no arquivo prototype com o tipo de arquivo apropriado.

Por exemplo, se você quiser que um diretório seja criado no sistema de destino, mas não quiser que seja entregue no meio de instalação, adicione a seguinte entrada para o diretório no arquivo prototype:


d none /directory 0644 root other

Se quiser criar um arquivo vazio no sistema de destino, a entrada do arquivo no arquivo prototype pode ser semelhante a:


f none filename=/dev/null 0644 bin bin

Os únicos objetos que devem ser entregues no meio de instalação são os arquivos regulares e scripts de edição (tipos de arquivo e, v, f), e os diretórios necessários para contê-los. Todos os objetos adicionais são criados sem referência a objetos, diretórios, pipes nomeados, dispositivos, links de disco rígido e links simbólicos entregues.

Criando links no tempo de instalação

Para criar links durante a instalação do pacote, defina o seguinte na entrada do arquivo prototype do objeto vinculado:

Os links relativos seriam especificados desta forma se o pacote estivesse instalado como absoluto ou relocável.

Distribuindo pacotes em vários volumes

Ao construir o pacote com o comando pkgmk, este realiza os cálculos e as ações necessárias para organizar um pacote com vários volumes. Um pacote com vários volumes é chamado de pacote segmentado.

No entanto, você pode usar o campo part opcional no arquivo prototype para definir em que parte quer que o objeto seja colocado. Um número neste comando substitui o comando pkgmk e força a colocação do componente na parte dada no campo. Observe que há correspondência individual entre as partes e os volumes da mídia removível formatada como sistemas de arquivos. Se os volumes forem pré-atribuídos pelo desenvolvedor, o comando pkgmk publica um erro se não houver espaço suficiente em nenhum volume.

Aninhando arquivos prototype

Você pode criar vários arquivos prototype e, em seguida, incluí-los usando o comando !include no arquivo prototype. Você pode querer aninhar os arquivos para facilitar a manutenção.

No exemplo seguinte há três arquivos prototype. O arquivo principal (prototype) está sendo editado. Os outros dois arquivos (proto2 e proto3) estão sendo incluídos.


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

Definindo valores padrão para os campos mode, owner e group

Para definir valores padrão para os campos mode, owner e group de objetos específicos, você pode inserir o comando !default no arquivo prototype. Por exemplo:


!default 0644 root other

Observação –

O intervalo do comando !default começa onde ele foi inserido e vai até o final do arquivo. O intervalo do comando não se estende sobre os arquivos incluídos.


No entanto, nos diretórios (tipo de arquivo d) e arquivos editáveis (tipo de arquivo e) que você sabe que existem no sistema de destino (como /usr ou /etc/vfstab), certifique-se de que os campos mode, owner e group no arquivo prototype estejam definidos como pontos de interrogação (?). Desta forma você não destruirá as configurações existentes que podem ter sido modificadas por um administrador.

Fornecendo um caminho de pesquisa para o comando pkgmk

Se o local de origem dos objetos de pacote é diferente do local de destino e não quiser usar o formato path1=path2 descrito em Os locais de origem e de destino de um objeto em poucas palavras, você pode usar o comando !search no arquivo prototype.

Por exemplo, se você tiver criado um diretório, pkgfiles , no diretório de início, e ele contiver todos os arquivos de informação e scripts de instalação, você pode especificar que este diretório seja pesquisado quando o pacote for construído com o comando pkgmk.

O comando no arquivo prototype pode ser semelhante a:


!search /home-dir/pkgfiles

Observação –

As solicitações de pesquisa não se estendem aos arquivos incluídos. Além disso, a pesquisa se limita aos diretórios específicos listados e não realiza pesquisa recursiva.


Configurando variáveis de ambiente

Você também pode adicionar comandos ao arquivo prototype com a forma !PARAM=value. Os comandos com esta forma definem as variáveis no ambiente atual. Se você tem vários arquivos prototype, o escopo deste comando é o local do arquivo prototype no qual ele está definido.

A variável PARAM pode começar com letra minúscula ou maiúscula. Se o valor da variável PARAM não for conhecido no tempo de construção, o comando pkgmk aborta com um erro. Para obter mais informações sobre a diferença entre as variáveis de instalação e de construção, consulte Variáveis de ambiente do pacote.