Guia do Desenvolvedor de Empacotamento de Aplicativos

ProcedureComo construir um pacote

  1. Crie um arquivo pkginfo, se ainda não tiver criado.

    Para obter instruções detalhadas, consulte Como criar um arquivo pkginfo.

  2. Crie um arquivo prototype, se ainda não tiver criado.

    Para obter instruções detalhadas, consulte Como criar um arquivo prototype usando o comando pkgproto.

  3. Torne o diretório de trabalho atual o mesmo diretório que contém o arquivo prototype do pacote.

  4. Construa o pacote.


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

    Substitui a versão existente do pacote.

    -a arch

    Ignora as informações da arquitetura do arquivo pkginfo.

    -b base-src-dir

    Solicita que base-src-dir seja adicionado ao início dos caminhos de nome relocáveis quando o comando pkgmk estiver procurando objetos no sistema de desenvolvimento.

    -d device

    Especifica que o pacote deve ser copiado em device, que pode ser um nome de caminho de diretório absoluto, um disquete ou um disco removível.

    -f filename

    Nomeia um arquivo, filename, que é usado como seu arquivo prototype. Os nomes padrão são prototype ou Prototype.

    -l limit

    Especifica o tamanho máximo, em blocos de 512 bytes, do dispositivo de saída.

    -p pstamp

    Ignora a definição do carimbo de produção no arquivo pkginfo.

    -r rootpath

    Solicita que o diretório raiz rootpath seja usado para situar os objetos no sistema de destino.

    -v version

    Ignora as informações da versão do arquivo pkginfo.

    PARAM=value

    Define as variáveis de ambiente globais. As variáveis que começam com letra minúscula são resolvidas no tempo de construção. As variáveis que começam com letra maiúscula são colocadas no arquivo pkginfo para serem usadas no tempo de instalação.

    pkginst

    Especifica um pacote por sua abreviatura ou uma instância específica (por exemplo, SUNWcadap.4).

    Para obter mais informações, consulte a página do manual pkgmk(1).

  5. Verifique o conteúdo do pacote.


    $ 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 device-name

    Especifique o local do pacote. Observe que device-name pode ser o nome completo do caminho de um diretório ou os identificadores de uma fita ou um disco removível.

    pkg-abbrev

    É o nome de um ou mais pacotes (separado por espaços) que serão verificados. Se for omitido, o comando pkgchk verifica todos os pacotes disponíveis.

    O comando pkgchk imprime que aspectos do pacote estão sendo verificados e exibe avisos e erros, conforme apropriado. Para obter mais informações sobre o comando pkgchk, consulte Verificando a integridade de um pacote.


    Cuidado – Cuidado –

    Os erros devem ser considerados muito seriamente. Um erro pode significar que um script precisa ser corrigido. Verifique todos os erros e faça alterações se discordar da saída do comando pkgchk.



Exemplo 2–2 Construindo um pacote

Este exemplo usa o arquivo prototype criado em Ajustando um arquivo prototype criado com o 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.
$


Exemplo 2–3 Especificando o diretório de origem dos arquivos relocáveis

Se o seu pacote contiver arquivos relocáveis, você pode usar a opção -b base-src-dir no comando pkgmk para especificar um nome de caminho a ser adicionado ao início dos nomes de caminho relocáveis durante a criação do pacote. Esta opção é útil se você não tiver usado o formato path1=path2 em arquivos relocáveis ou não tiver sido especificado um caminho de pesquisa com o comando !search no arquivo prototype.

O comando seguinte constrói um pacote com as seguintes características:


$ 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.

Nesse exemplo, o pacote é construído no diretório padrão, /var/spool/pkg , especificando a opção -o. Esta opção substitui o pacote criado no Exemplo 2–2.



Exemplo 2–4 Especificando diretórios de origem diferentes para arquivos de informação e objetos de pacote

Se colocar os arquivos de informação (como pkginfo e prototype) e os objetos de pacote em dois diretórios diferentes, você pode criar seu pacote usando as opções -b base-src-dir e - r rootpath no comando pkgmk. Se tiver os objetos de pacote em um diretório chamado /product/pkgbin e os arquivos de informação do pacote em um diretório chamado /product/pkgsrc, você pode usar o comando seguinte para colocar o pacote no diretório /var/spool/pkg:


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

Opcionalmente, você pode usar estes comandos para atingir o mesmo resultado:


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

Nesse exemplo, o comando pkgmk usa o diretório de trabalho atual para encontrar as partes restantes do pacote (como os arquivos de informação prototype e pkginfo).


Consulte também

Se quiser adicionar arquivos de informação e scripts de instalação opcionais ao seu pacote, consulte Capítulo 3Melhorando a funcionalidade de um pacote (Tarefas). Do contrário, depois de construir o pacote, você deve verificar a sua integridade. O Capítulo 4Verificando e transferindo um pacote explica como fazê-lo e oferece instruções detalhadas sobre como transferir o pacote verificado a um meio de distribuição.