Ignorar Links de Navegao | |
Sair do Modo de Exibio de Impresso | |
![]() |
Guia do desenvolvedor de empacotamento de aplicativos Oracle Solaris 10 1/13 Information Library (Português (Brasil)) |
O processo de construção de um pacote (Mapa de tarefas)
Variáveis de ambiente do pacote
Regras gerais sobre o uso das variáveis de ambiente
Resumo das variáveis de ambiente do pacote
Definindo uma instância de pacote
Definindo uma abreviatura de pacote (PKG)
Especificando uma arquitetura de pacote (ARCH)
Especificando a arquitetura de um conjunto de instruções do pacote (SUNW_ISA)
Especificando uma versão do pacote (VERSION)
Definindo o nome de um pacote (NAME)
Definindo a categoria de um pacote (CATEGORY)
Organizando o conteúdo de um pacote
Como organizar o conteúdo de um pacote
Objetos Relocáveis Coletivamente
Objetos Relocáveis Individualmente
Os locais de origem e de destino de um objeto em poucas palavras
Criando um arquivo prototype desde o início
Exemplo -- Criando um arquivo prototype com o comando pkgproto
Ajustando um arquivo prototype criado com o comando pkgproto
Criando entradas de objeto com tipos de arquivo v, e, x e i
Usando várias definições de classe
Exemplo -- Ajustando um arquivo prototype criado usando o comando pkgproto
Adicionando funcionalidade a um arquivo prototype
Definindo objetos adicionais a serem criados no tempo de instalação
Criando links no tempo de instalação
Distribuindo pacotes em vários volumes
Definindo valores padrão para os campos mode, owner e group
Fornecendo um caminho de pesquisa para o comando pkgmk
Configurando variáveis de ambiente
Como criar um arquivo prototype usando o comando pkgproto
3. Melhorando a funcionalidade de um pacote (Tarefas)
4. Verificando e transferindo um pacote
5. Estudos de caso de criação de pacote
Use o comando pkgmk para construir seu pacote. O comando pkgmk realiza as seguintes tarefas:
Coloca todos os objetos definidos do arquivo prototype no formato de diretório.
Cria um pacote instalável que é usado como entrada do comando pkgadd.
A forma mais simples deste comando é o comando pkgmk sem opções. Antes de usar o comando pkgmk sem opções, certifique-se de que o diretório de trabalho atual contém o arquivo prototype do pacote. A saída do comando, os arquivos e os diretórios estão gravados no diretório /var/spool/pkg.
Ao construir um pacote com o comando pkgmk, ele cria um arquivo pkgmap que substitui o arquivo prototype. O arquivo pkgmap do exemplo anterior apresenta o conteúdo seguinte:
$ more pkgmap : 1 3170 1 d none SUNWcadap 0755 root sys 1 d none SUNWcadap/demo 0755 root bin 1 f none SUNWcadap/demo/file1 0555 root bin 14868 45617 837527496 1 d none SUNWcadap/lib 0755 root bin 1 f none SUNWcadap/lib/file2 0644 root bin 1551792 62372 837527499 1 d none SUNWcadap/man 0755 bin bin 1 d none SUNWcadap/man/man1 0755 bin bin 1 f none SUNWcadap/man/man1/file3.1 0444 bin bin 3700 42989 837527500 1 f none SUNWcadap/man/man1/file4.1 0444 bin bin 1338 44010 837527499 1 f none SUNWcadap/man/windex 0644 root other 157 13275 837527499 1 d none SUNWcadap/srcfiles 0755 root bin 1 f none SUNWcadap/srcfiles/file5 0555 root bin 12208 20280 837527497 1 f none SUNWcadap/srcfiles/file6 0555 root bin 12256 63236 837527497 1 i pkginfo 140 10941 837531104 $
O formato deste arquivo é muito semelhante ao formato do arquivo prototype. No entanto, o arquivo pkgmap inclui a seguinte informação:
A primeira linha indica o número de volumes que o pacote abrange, e o tamanho aproximado que o pacote terá quando estiver instalado.
Por exemplo, : 1 3170 indica que o pacote abrange um volume e usará aproximadamente 3170 blocos de 512 bytes quando estiver instalado.
Há três campos adicionais que definem o tamanho, a soma de verificação e tempo de modificação de cada objeto de pacote.
Os objetos de pacote estão listados em ordem alfabética por classe e por nome de caminho para diminuir o tempo de instalação do pacote.
Para obter instruções detalhadas, consulte Como criar um arquivo pkginfo.
Para obter instruções detalhadas, consulte Como criar um arquivo prototype usando o comando pkgproto.
$ pkgmk [-o] [-a arch] [-b base-src-dir] [-d device] [-f filename] [-l limit] [-p pstamp] [-r rootpath] [-v version] [PARAM=value] [pkginst]
Substitui a versão existente do pacote.
Ignora as informações da arquitetura do arquivo pkginfo.
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.
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.
Nomeia um arquivo, filename, que é usado como seu arquivo prototype. Os nomes padrão são prototype ou Prototype.
Especifica o tamanho máximo, em blocos de 512 bytes, do dispositivo de saída.
Ignora a definição do carimbo de produção no arquivo pkginfo.
Solicita que o diretório raiz rootpath seja usado para situar os objetos no sistema de destino.
Ignora as informações da versão do arquivo pkginfo.
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.
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).
$ 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. $
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.
É 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 - 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:
O pacote é construído usando o arquivo prototype de amostra criado pelo comando pkgproto. Consulte Exemplo -- Criando um arquivo prototype com o comando pkgproto para obter mais informações.
O pacote é construído sem que os campos path sejam modificados.
O pacote adiciona uma entrada para o arquivo pkginfo.
$ 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 3, Melhorando a funcionalidade de um pacote (Tarefas). Do contrário, depois de construir o pacote, você deve verificar a sua integridade. O Capítulo 4, Verificando 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.